⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 收集:常见问题解答.txt

📁 oracle问题集
💻 TXT
📖 第 1 页 / 共 3 页
字号:
出差[忙].



由 jlandzpa 于 01-11-07 04:44 发表: 
oracle FAQ(2) from chao_ping
关于OPTIMAL参数

optimal是用于限制回滚段大小的一个存储参数。在执行一个长的事务之后,那个事务所使用的回滚段会比较大,而设置了Optimal这个参数以后,一旦事务提交结束,回滚段自动收缩到Optimal所指定的大小。

如果你的系统中有许多长时间运行的事务的话,那么应该把回滚段的Optimal参数设置的比较大一点。这样有利于保持回滚段表空间的连续性。否则不断的扩张、收缩会使表空间更加破碎。

如果系统中主要的事务都是短时间的,那么应该把回滚段设置的比较小一些,这样有利于让回滚段里面的信息可以存储在SGA里边,以利于提高系统性能。

回滚段的Optimal参数可以在创建回滚段的时候指定,也可以用

ALTER ROLLBACK SEGMENT SEGMENT_NAME OPTIMAL XX M;这样来重新设定。

Oracle8i 里边的

ALTER SESSION SET CURRENT_SCHEMA=

可以用来更改当前的用户模式。


Oracle公司已经宣称,不再支持server manager,这个工具自从Oracle 
6.0开始,就一直是管理Oracle数据库的主要工具。现在,SQL*Plus替代了Server Manager的地位,因此,Server 
Manager中相应的功能也都集成到了SQL*Plus之中。

SQL*Plus新增加的主要命令是startup, shutdown, archive 
log,和recover。当然,标准的SQL语法仍然是支持的了,比如一系列的CREATE, 
ALTER等语句。但是也对其中的一些有了一些改变,比如原来不支持的ALTER DATABASE OPEN,ALTER DATABASE MOUNT,ALTER 
DATABASE BACKUP 等句子。

对于SET命令,也多了一些新的选项,用来包含一些如自动恢复等。SHOW命令也开始可以用来直接显示参数SHOW PARAMETER ,SHOW 
SGA等。而这些,原来都只是在Server Manager里面才有的功能。



Oracle8i仍旧保留了尽人皆知的INTERNAL账户,但是要记住,这主要是为了向后兼容。INTERNAL账户的功能现在开始有SYSDBA,SYSOPER这两个角色来支持了。INTERNAL/SYS的口令可以用下面这个方法来进行修改:

O/S Prompt> orapwd password=<some password> 

当数据库刚刚创建的时候,SYS的密码默认为change_on_install,而SYSTEM的密码是manager,而INTERNAL则根本就没有密码。因此,创建完数据库之后,第一件要做的事情就是改变以上三个用户的口令。INTERNAL的口令可以用前面提到过的方法来改变,而SYSTEM,SYS则可以直接用ALTER 
USER username IDENTIFIED BY password;来更改。注意,在Oracle8i开始,ALTER USER SYS 
IDENTIFIED BY 
password;同时也会更改INTERNAL的密码,如果你为INTERNAL设置了密码的话,同时,马上把SYSDBA,SYSOPER这两个角色授予负责管理这个数据库的用户。对于那些使用INTERNAL来连接数据库的脚本,也要相应的作一些修改。

启动和关闭数据库:

要从SQL*Plus里边启动数据库,请按照以下的步骤进行:

O/S Prompt>sqlplus /nolog

SQL> connect scott/tiger as SYSDBA 

SQL> startup 

如果希望用不同于默认得参数来启动数据库,可以使用下面代参数的启动命令:

SQL> startup PFILE=<init.ora file to be used> 

有时候需要启动数据库,但是不让普通用户进入,比如为了平衡IO,需要移动一个数据文件的位置,这时候就需要改变默认得启动选项:

SQL> startup mount 

当完成了维护任务之后,可以选择关闭数据库然后再重新按照正常方式打开,或者直接在SQL*Plus里边输入下面的命令,Oracle就可以开始正常运行了: 

SQL> alter database open 

有时候需要创建一个新的数据库,或者需要重建控制文件,就需要用下面的语句:

SQL> startup nomount

有时候,数据库难以正常启动,就可以考虑使用下面的办法来强迫启动:使用FORCE选项,STARTUP FORCE实际上相当于一个SHUTDOWN 
ABORT然后再STARTUP这样一个过程。

SQL> startup force 

SHUTDOWN这个命令也有好几种参数可以选择:

正常关闭是等待所有用户都从系统退出以后,再正常关闭系统。这是一种最最理想的关闭数据库的方式。一般都应该使用这种方式来正常关闭数据库。

SQL> shutdown 

在Oracle8i开始,新加了一个关闭选项:SHUTDOWN 
TRANSACTIONAL。这允许所有用户都完成它们的事务,一旦事务提交,马上被断开连接。这样既保证了用户不会丢失它们的事务,也保证了数据库可以及时关闭,进行必要的维护操作。这种方式关闭的话,下次系统启动之后,也不用进行实例一级的恢复。比下面提到的另外两种方式都要理想。

SQL> shutdown transactional 

SHUTDOWN 
IMMEDIATE是马上中止用户的当前事务,并不等这些事务完成,回滚这些用户的当前事务。但是如果有一些事务很久没有提交的话,那么SHUTDOWN 
IMMEDIATE或许就不像说得那样IMMEDIATE了。可能也要花很多时间来回滚这些事务。

SQL> shutdown immediate 

在Oracle8i里边最后一种关闭方式是SHUTDOWN 
ABORT。这种关闭方式和直接关闭计算机的电源其实没有太多的区别。任何当前连接的用户都被马上断开联接,在下次实例再次启动的时候,必须进行实例一级的恢复,用以回滚没有提交的事务。

SQL> shutdown abort 

ALTER TABLE table_name MOVE之后,表上的索引标志为UNUSABLE?

在Oracle8i开始,可以直接使用alter table table_name move [tablespace tablespace_name];

来为一张表移动到另一个表空间,或者重新组织表的存储方式,以减少碎片。但是,这样使用过之后,所有这张表上的索引都将被标志为unusable。这是因为MOVE一张表之后,表中列对应的物理位置都改变了,就是所有行的ROWID都变化了,而这张表的索引就用到了其中行的ROWID。由于Oracle不会自动更新索引对应的ROWID,这时候,索引上的ROWID就指向了错误的地方。因此,索引被标志为UNUSABLE。这时候,你就需要手工重建索引。可以使用下面的语法来重建索引:

ALTER INDEX index_name 
REBUILD;当然,还可以为索引指定特定的合适的存储参数,来优化索引的存储。或许Oracle之所以没有自动维护索引,就是为了让你可以为索引指定合适的存储参数。

如何远程安装Oracle:

如果需要从PC机上的X-window客户端安装Unix上的Oracle系统,要注意下面这一点:Oracle8i使用的是Universal 
Installer,使用了Java技术,必须在图形界面下安装。如果是远程安装,必须设置一下什么地方来显示Universal Installer的图形界面:使用

$DISPLAY=workstation_name:0.0

$export DISPLAY

举一个例子,你的PC机的IP地址是150.150.4.128,机器名字叫做test,那么就可以使用下面的语法来进行为安装作准备工作:

$DSIPLAY=150.150.4.128:0.0

$export DISPLAY

或者使用下面的语法,但是必须这个test机器的信息写在hosts文件里边: 

DSIPLAY=test:0.0

$export DISPLAY
__________________
任弱水三千,我独取一瓢饮!
勿以善小而不为,勿以恶小而为之!
不要以为登上了山峰,你就征服了世界!
出差[忙].



由 easyfree 于 01-11-07 17:27 发表: 
呵呵,你怎么把我兄弟的个人网站上的东东搬过来了?
人家可是有版权的 

下次如果有其他网站上的, 给个链接, 谢谢

不过还是很感谢你的支持, 再接再厉
__________________

生年不满百,常怀千岁忧。
昼短苦夜长,何不秉烛游!
为乐当及时,何能待来兹?
愚者爱惜费,但为后世嗤。
仙人王子乔,难可与等期。



由 jlandzpa 于 01-11-07 18:17 发表: 
sorry,是我疏忽了.
chao_ping的网站:
http://chaoping.home.chinaren.com/
__________________
任弱水三千,我独取一瓢饮!
勿以善小而不为,勿以恶小而为之!
不要以为登上了山峰,你就征服了世界!
出差[忙].



由 allanliao 于 01-11-08 04:22 发表: 
 FOOT N问题的简化
换一个思路,
其实很多情况下,FOOT N问题很容易处理的:
从数字逻辑看,
FOOT N <==> [反 TOP ] N

所以,FOOT N 就是TOP N,无非排序方式用降序就可以了
如:
SELECT * FROM
( SELECT * FROM emp ORDER BY empno DESC)
WHERE ROWNUM<=N
__________________
【单骑】
万水千山独行
找我登天路径


由 easyfree 于 01-11-08 21:32 发表: 
Re: FOOT N问题的简化
  quote:

  最初由 allanliao 发布
  换一个思路,
  其实很多情况下,FOOT N问题很容易处理的:
  从数字逻辑看,
  FOOT N <==> [反 TOP ] N

  所以,FOOT N 就是TOP N,无非排序方式用降序就可以了
  如:
  SELECT * FROM
  ( SELECT * FROM emp ORDER BY empno DESC)
  WHERE ROWNUM<=N 




好思路,谢谢
__________________

生年不满百,常怀千岁忧。
昼短苦夜长,何不秉烛游!
为乐当及时,何能待来兹?
愚者爱惜费,但为后世嗤。
仙人王子乔,难可与等期。



由 sun 于 01-11-10 00:23 发表: 
thanks a lot


由 yh2ygy 于 01-11-10 04:49 发表: 
收到
不错不错,欧留下了


由 rich3 于 01-11-13 06:11 发表: 
受益菲浅
多谢多谢


由 ykliu_ora 于 01-11-17 03:00 发表: 
非常感谢


由 fergio 于 01-11-17 20:04 发表: 
i have a question
Max number of Prespanwned server process are defined by -------- 

Prespawn_Max or prespawn_max_servers?
__________________
让西北象我的精神一样朝气蓬勃!
让西北的经济象我的思想一样快速发展!




由 tonyxucanada 于 01-11-28 12:03 发表: 
Re: FOOT N问题的简化
remember: whenever you want use ROWNUM , you may not want to use ORDER BY 
clause, otherwise you won't get any correct result. so the first script is 
correct, your's is incorrect.


由 lgw 于 01-11-29 21:30 发表: 
fergio
初级会员

注册日期: 2001 Nov
来自: 兰州
发帖数量: 14
论坛积分:420
i have a question 
Max number of Prespanwned server process are defined by -------- 

Prespawn_Max or prespawn_max_servers?


__________________
fergio loo

the succ answer is prespawn_max_servers


由 freebob 于 01-12-13 19:26 发表: 
这是俺在linuxforum上看的一文章,很棒,于大家共享(1)
完整的手工建立ORACLE数据库步骤 
作者:Winder(杭州) 
E_MAIL: lswandlm@163.net 
URL: http://www.qyhhschool.com 

数据库: Oracle 8i R2 (8.1.6) 
安装路径:/data/ora816 
数据库实例:web 
数据库全局名称:web.edi.com 

1、手工创建相关目录 
/data/ora816/admin/web 
/data/ora816/admin/web/adhoc 
/data/ora816/admin/web/bdump 
/data/ora816/admin/web/cdump 
/data/ora816/admin/web/create 
/data/ora816/admin/web/exp 
/data/ora816/admin/web/pfile 
/data/ora816/admin/web/udump 

/data/ora816/oradata/web 
/data/ora816/oradata/web/archive 

2、手工创建初始化启动参数文件:/data/ora816/admin/web/pfile/initweb.ora 
检查$ORACLE_HOME/dbs目录下是否有初始化文件,比如如果您的sid是web,则在此目录下应该有一个initweb.ora的文件,如果没有,您可以将init.ora文件复制成initweb.ora文件:cp 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -