36、看oracle 10 concepts的小结
小结,关于对象依赖性[@more@]1、当用户创建了表,并基于此表创建了索引、视图后,又drop了索引,则所有依赖于此表的对象将被置为无效状态,这包括:视图,包,包体,函数,过程。这样做是为了保护可更新的连接试图(updatable join view)。(啥意思。。)2、由select * from table 为定义查询(defining query)来建立视图时,其实是将table的所有字段都放在这个定义里并储存于数据字典中。当基表被修改或重建后,不再包含原基表所有的字段,那么由select *这样定义的视图也将被设为无效。
35、SCN号的理解
与checkpoint相关的SCN号有四个,其中三个存在控制文件中,一个存放在数据文件头中。system chekpoint SCN,datafile checkpoint SCN,start SCN,end SCN.start SCN是放在数据文件头中的。[@more@] 系统检查点scn(v$database(checkpoint_change#))数据文件检查点(v$datafile(checkpoint_change#))数据文件终止scn(v$datafile(last_change#))数据文件中存放的检查点启动scn (v$datafile_header(checkpoint_change#)1、系统检查点scn当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。select checkpoint_change# from
34、VIEW可以insert,delete,update.
试图是可以insert ,delete,update的,但是要满足一定的条件。所有的这些条件最终都反映在基表上,必须遵从基表的约束,并且也会触发定义在基表上的trigger[@more@]1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDATE,DELETE的操作. 2.如果是连接视图,那就要遵守基本更新准则了.现在我只对INSERT准则做一下说明:在INSERT语句中不能显式或隐式的引用到任何非码保留基础表中的字段,如果在定义视图中使用了WITH CHECK OPTION子句,那就不能对视图执行INSERT操
33、将表空间offline的几个参数
ALTER TABLESPACE tablespace{ONLINE|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]}NORMAL和TEMPORARY的区别主要在于,temporary可以在数据文件损坏的情况下offline tablespace[@more@]ALTER TABLESPACE tablespace{ONLINE|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]}NORMAL :flushes all blocks in all data files in the tablespace out of the SGA. This is the default. You need not perform media recovery on this tablespace before bringing it back online.Use the NORMAL clause whenever possible.TEMPORARY :
32、SYSAUX表空间
SYSAUX表空间 可以offline但不能readonly[@more@]SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。如果SYSAUX表空间不可用,数据库核心功能将保持有效;使用SYSAUX表空间的特点将会失败或功能受限. 我们看一下数据库创建脚本:CREATE DATABASE "eygle"MAXINSTANCES 8MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGME
31、ASM的用户SYSDBA和SYSOPER
ASM[@more@]ASM instance do not have a data dictionary,so the only way to connect to one is by using OS authentication,that is ,SYSDBA or SYSOPER.SYSOPER可以使用的命令:startup/shutdownALTER diskgroup mount/dismountalter diskgroup online/offline diskalter diskgroup checkalter diskgroup rebalance不可以用的:create diskgroupadd/drop/resize disk
30、闪回恢复
flashback area[@more@]1.设置闪回恢复区闪回恢复区主要通过3个初始化参数来设置和管理db_recovery_file_dest:指定闪回恢复区的位置 db_recovery_file_dest_size:指定闪回恢复区的可用空间大小 db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log。所以这个参数要和db_recovery_file_dest_size配合修改。 2.启动flashback database设置了闪回恢复区后,可以启动闪回数据库功能。首先,数据库必须
27、oracle的临时表问题
[@more@]1 语法 在Oracle中,可以创建以下两种临时表: 1) 会话特有的临时表 CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) ON COMMIT PRESERVE ROWS; 2) 事务特有的临时表 CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> ) ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY TABLE MyTempTable 所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全
26、控制文件相关 -- MAXLOGHISTORY ,control_file_record_keep_time
MAXLOGHISTORY和control_file_record_keep_time这两个参数都和controlfile有关,也都和log file有关。很容易混淆在一起。[@more@]如果你对这两个参数有不清楚的地方,希望这篇文章可以扫除你的疑惑。这两个参数对应于controlfile中不同的section。存放于完全不同的存储空间内。MAXLOGHISTORY 对应于”LOG HISTORY ” section. 对应于view v$log_history & v$loghist,单位为log的个数 control_file_record_keep_time 对应于”ARCHIVED LOG” section, 对应于view v$archived_log 单位为keep的天数这里所指的section可以从v$controlfil
24、关于incremental level 0 backup
0级增量备份[@more@]The incremental level 0 backup contain all the datafiles .The offline datafiles and the read-only datafiles are also contained.This backup mode will not contain the password file of the database,the parameter file .the archived log files,the control file .
23、sequence
oracle sequence的一些要点[@more@]1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值 NEXTVAL=增加sequence的值,然后返回 sequence 值 比如: emp_sequence.CURRVAL emp_sequence.NEXTVAL
22、listener的几个错误代码
listener的几个错误代码[@more@]1、ORA-12514 TNS:listener does not currently know of service requested in connectdescriptor.This indicate:The database service is not dynamically registered with the listener.OR,The database service name is not configured in the listener.ora file2、ORA-12541:TNS:no listenerThe listener is not running on the database specified in the connect descriptor .3、ORA-03113:TNS:end-of-file on communication channelThe database is not open .4 、ORA-12154:TNS:could not resolv
21、alter tablespace .. rename datafile ...
alter tablespace .. rename datafile ...而不是alter database ..rename datafile...drop掉一个datafile的方法[@more@]1、alter database .. rename datafile.. is syntactically incorrect.The RENAME DATAFILE clause is not a valid clause of the ALTER DATABASE statement.2、drop datafileTake the datafile offinle by using the ALTER DATABASE ...DATAFILE..OFFLINE statement,and drop the datafile by using ALTER DATABASE...DROP DATAFILE statement.The DROP DATAFILE clause is not valid for the ALTER TABLESPACE state
20、关于backup mode
将数据库置于backup mode时,依然要写数据文件,只是不改变datafile header block.这是做的备份是不一致备份(inconsisitent backup)[@more@]1、为什么要将表空间置于热备状态?这是因为OS在Copy Block时的无序性,也就是说在Copy数据文件的时候并不能保证最先Copy 出来的Block是Datafile header Block(因为Datafile header Block中记录着datafile 的SCN,恢复的时候就是从这个Block中记录的SCN开始)。例如:OS Copy 开始时Block 1 的时间为t1,Copy 过程中Block 1 可能被别的进程修改,Copy 完成之时的时间为t2,而此时开始Copy dataf
19、remote_os_authent和os_authent_prefix
os_remote_authent和os_authent_prefix这2个参数是用来设置,用户通过客户端操作系统进行认证,而不是通过服务器的操作系统进行认证。和remot_login_passwordfile是完全不同的[@more@]我在一台AIX上建个OS用户test在数据库中建个用户create user ops$test identified by externalinit_sid.ora中设置参数:remote_os_authent=trueos_authent_prefix=ops$数据库重启后,在AIX上以test登录OS,然后sqlplus /@service_name是可以登录的。
18、关于oracle 认证的几个问题
有好几个问题一直困惑,试着总结一下[@more@]1、REMOTE_LOGIN_PASSWORDFILE=NONE,在这个设置下,远程sys用户无法登陆?设置这个参数的时候,是进行操作系统认证。而只有本地数据库管理和具有安全网络连接的远程数据库管理可以采用操作系统认证方式,并且一般来说,TCP/IP和DECnet连接都不是安全的网络连接。所以,一般状况下,我们都是采用TCP/IP在连接数据库,也就没有办法用管理员身份远程登陆了。2、REMOTE_LOGIN_PASSWORDFILE=NONE,同时SQLNET.AUTHENTICATION_SERVICES=(NONE),前者设定为操作系统认证,后者为口令认证,如何起作用
16、重做日志文件的状态及重做日志组的状态说明
重做日志文件和重做日志组的状态[@more@]一、日志文件的状态包括:1、NULL -File is in use2、STALE-contents of the file are incomplete3、INVALID-File is inaccessible4、DELETED-File is no longer used二、重做日志组的状态包括:1、CURRENT-Current redo log.This implies that the redo log is active.The redo log could be open or closed.2、UNUSED-Online redo log has never been written to.This is the status of a redo log that was just added.or just after a RESETLOGS.when it is not the current redo log3、ACTIVE
15、V$SYSSTAT V$SGA V$ROLLSTAT V@FILESTAT
记录几个视图的用处[@more@]1、V$SYSSTAT The view contains instance-wide information regarding rollback segment,datafile I/O,parse data,and so on.To locate information regareding memory-related problems in the database, you can use this view.2、V$SGAThe view only contain information regarding the distribution of SGA memory into different SGA components.3、V$SESSIONThe view displays session-specific information4、V$ROLLSTATThe view contains information specific to rollback segments5、V$FILESTATThe
14、什么时候产生checkpoint?
以前总有一个疑问,在什么情况下,才会出现,还没有commit,就已经将数据从data buffer写到数据文件上的情况?顺道记一下checkpoint产生的情况。[@more@]1、在commit前有cheakpoint发生2、data buffer 不够用时暂时想到这么多。checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。1.当发生日志组切换的时候2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,FAST_START_IO_TARGETFAST_START_MTTR_TARGET参数设置的时候*13.当运行ALTER SYSTEM SWITCH LOGFILE的时候4.当运行ALTER SYSTEM CHEC
13、oracle中的几个状态,invalid,obsolete,expired,stale
oracle中经常会考到的几个状态,invalid,obsolete,expired,stale等等。自己试着总结一下[@more@]1、If one of the online redo log members is lost,the status in v$logfie will be INVALID 2、If the contents of the redo log file are incomplete ,the status of the file in the V$LOGFILE view will be STALE3、You are using RMAN to perform backup and recovery on your database.The backup of one of the files was lost because it was located on a failed media.If you use CROSSCHECK command to verify the existence of