ORACLE学习笔记(二)

1、stinrgs spfilebbk.ora > initmes.ora

2、VI命令 

替换 :%s/wision/bbk/g

:%s/*\.//g    \.是转义的

3. cp -R wision/  bbk

递归复制

4、在/u01/admin  下建立目录,在/u01/oradata目录下建立archive目录

5、create 数据库时,其中的UNDO TABLESPACE "UNDOTBS1" 要和spfile中的一致(如果配置的是undo mangement 是auto的话)

 一些细节参数要和spfile中的一致

6、spool dbcre1111.log;

      create .......;

      spool off;

7、创建之前先设置一下环境变量,如SID .....

8、conn / as sysdba;

     create spfile from pfile;

这个pfile就是第一步创建的那个

9、创建数据库前要在ORACLE_HOME/dbs目录下建立一个口令文件

    再startup nomount。

10、orapwd file=orapwbbk password=123 entries=10

 11、看执行过程看alert

tail -f /u01/admin/bbk/bdump/alert_bbk.log

12、不指定sys的密码,会使用默认的

 13、oracle的所有脚本存储在oracle_home目录下的rdbms/admin目录中。

 14、ROWID就是80位二进制数存储,用18位64进制数据表示

 15、数据字典存储在DICTORY表中

动态性能视图存储在V$Fixed_tables

 16、base table基表是创建数据库时创建的,它是执行了sql.bsq脚本

17、catalog.sql是创建视图的 比如user_tables dba_usertables

18、data dictionary views are static views

数据字典是静态视图,但它并不是一成不变的,当DDL时会变

19、动态性能视图来源于内存和control file

20、nomaoutn 只读取spfile mount 读取控制文件

 21、spfile记录着controlfile位置

controlfile记录着数据文件、联机日志文件的位置 ,还记录着有哪些表空间

22、查询alertSID.log文件位置

SQL> show parameter background

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
background_core_dump       string  partial
background_dump_dest       string  /u01/diag/rdbms/mes/mes/trace

 

23、一个表就一个segment,如果是分区表的话一张表可能会占用多个segment

24、grep -i 不区分大小写  strings spfilemes.ora | grep -i db_block

 25、db_block_size是在表空间一级定义的

26、system    temporary 表空间使用的是创建数据库时指定的db_block_size

其它表空间可以自由指定

27、如果有其中的表空间指定了db_block_size不和标准和db_block_size一样的话

需要指定对应的db_nk_cache_size的大小(db_4k_cache_size等它们默认初始是0),否则表空间的数据无法读取到内存中

 28、设置trace跟踪的方法参照

Setting Up AUTOTRACE in SQL*Plus
AUTOTRACE is a facility within SQL*Plus that shows you the explain plan of the queries you’ve
executed and the resources they used. This book makes extensive use of the AUTOTRACE
facility.
There is more than one way to get AUTOTRACE configured. This is what I like to do to get
AUTOTRACE working:
1. cd [ORACLE_HOME]/rdbms/admin
2. log into SQL*Plus as SYSTEM
3. Run @utlxplan
4. Run CREATE PUBLIC SYNONYM PLAN_TABLE FOR PLAN_TABLE;
5. Run GRANT ALL ON PLAN_TABLE TO PUBLIC;
You can replace the GRANT TO PUBLIC with some user if you want. By making the PLAN_
TABLE public, you let anyone trace using SQL*Plus (not a bad thing, in my opinion). This
prevents each and every user from having to install his or her own plan table. The alternative
is for you to run @utlxplan in every schema from which you want to use AUTOTRACE.
The next step is creating and granting the PLUSTRACE role:
1. cd [ORACLE_HOME]/sqlplus/admin
2. Log in to SQL*Plus as SYS or as SYSDBA
3. Run @plustrce
4. Run GRANT PLUSTRACE TO PUBLIC;
Again, you can replace PUBLIC in the GRANT command with some user if you want.


29、一定要记住需要trace的时候,先要打开它用set autotrace on

 30、pctfree 20%是用来存储以后update的数据

pctused 40% 是设置当数据存储小于等于40%时就将此数据块on freelist ,又可以用于插入数据

31、create table emp (......) tablespace data01

storage (inital 100k

              next 100k

              pctincrease 0

             minextens  8

             maxextens 10);

开始100k,最小800k,最大1m

pctincrease 0 是指定第三次扩展表的分区时比第二次多百分之多少如果是0的话,都是和 netx 100k一样增加100k大小

32、上面的存储参数还需要根据表空间的设置来看待,如果表空间设置的是extent management local uniform size 200k 所有的分区是200k

那么上面的设置就会和表空间的设置冲突。

 33、

SQL> select t.file_name from dba_data_files t ,dba_extents e
  2  where t.file_id=e.file_id and e.segment_name = 'M';

FILE_NAME
--------------------------------------------------------------------------------
/u01/oradata/mes/users01.dbf

 34、commit是将redobuffe 中的内容写到redo log file中,至于 dbwr写不写是它的事

插入1条和插入1000000条的commit时间 几乎差不多,因为每3秒或者redo buffer的1/3满会自动写redo entry,commit时 已经写的差不多了。

 35、ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_01;--切换临时表空间

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2; --切换UNDO表空间

36、如果UNDO表空间太小的话,执行又臭又长的查询就会报ORA-01555的错误,因为查询过程中有修改的数据它会到UNDO表空间找对应的RollBack Segment数据(SCN比查询的SCN小),如果UNDO表空间太小就会被后来的事务给覆盖掉。

37、UNDO是全局性的,为防止那些执行大数据量的事务并且不提交的特殊用户(如:一下执行插入1000000条记录)可以通过设定用户的UNDO quota 空间定额来限制他,他只能分别插入100条就commit 再插入100条commit........

38.rollback segment 和undo segment在技术文档中是一个意思

39、create disabled constraint

可以创建check 、forigen key 、unique、 等,其中,如果disable unique和primary key时,是drop对应的索引,enable时是重新创建它。

alter table emp add constraint fk_empid (deptid)

referens dept(deptid) disable;

alter table emp enable primary key;

 40、约束有deferred和immediate两种,deferred创建的索引是nounique的。

 41、操作子表的DML时,只需要让父表的parent key的索引online即可,它不用扫描表。

 42、子表的forien key 最好建立索引,因为更新父表的key时要对子表进行表级索,再扫描子表的foreign key 有无此值。如果有索引的话只是对相应的记录进行行级索。不影响并发。

 43、约束定义时的deferrable,但并不代表它就是延迟检查的,还要set constraints all deferred; 或者指定某个约束是延迟的才管用。

44、系统验证方式:很建立一个系统账户derek,show paramater auth 看看系统验证前缀是什么(默认是ops$),则建立一个数据库账号,ops$derek    identified externally

系统使用derek登录,export ORACLE_SID  ORACLE_HOME PATH=$ORACLE_HOME/bin:$PATH          直接用sqlplus / 即可成功登录数据库

注意:使用sqlplus命令时  它会到oracle_home/bin下去找,但是这个目录的权限可能无法查看,需要用root 执行chmod 777 /u01/oracle 然后再执行。

45、共享模式中的dispathers 是静态的,配置多少就是多少不会自动增减,但是shared servers会根据情况变化数量(不会大于 max_shared_servers,不会小于shared_servers)

 46、shared_servers可以设置为0,当客户端有使用shared方式连接的 就会自动增加shared_servers process。(共享模式和独占模式可以同时使用)

47、在共享服务器模式中,最好先启动监听,因为在修改dispatchers的时候它会向监听注册中修改一些信息,如果listener没有启动的话它就不能注册。

如果先startup数据库再启动listener的话,在修改了dispatchers和shared_servers参数后不能很好的向listener注册。

48、commit是将数据写入到logfile中,写日志会优先于数据文件的写入。

49、redo就是重新执行操作insert 、delete、update ,undo就是取消执行操作 delete、insert ,redo可以重现操作,undo是取消操作重现原来的状态。

 50、Mutiplexed control files,其中任意一个control file损坏,oracle就不可以正常Mount了。

但是Mutiplexed redo log file,一个组中只要有一个文件好用,oracle就可以正常运行,它只是往alert.log文件和trace文件中写warnig信息。

 51、性能、可用性 这两个指标是相互矛盾的,如:

         为了好的性能让checkpoint很长时间才做一次,那么在insert 10000条记录时crash掉了 ,再次启动时它会进行crash recovery,会很慢,可用性就低。

         为了好的可用性,可以让checkpoin在很短的时间内就做一次,频率很高,那么它的性能就很低,但是在恢复时就很快。

52、crash recovery:是singal instance或者rac中的所有instatce都崩溃掉了。

       instace recorver:是singal instance或者rac中的某一个instatce崩溃掉了。

 53、查看归档目录

SQL> archive log list
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1
Next log sequence to archive   1
Current log sequence	       1
SQL> show parameter USE_DB_RECOVERY_FILE_DEST
SQL> show parameter RECOVERY_FILE_DEST

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /u01/app/oracle/flash_recovery
						 _area
db_recovery_file_dest_size	     big integer 3852M


 54、备份控制文件

SQL> alter database backup controlfile to trace as '/tmp/derek.sql';

Database altered.


 55、recover database until time、scn、cancel时 ,time 、scn不包括参数的数字,如scn1244那么只能恢复到1233

56、rman中的report 和list命令有report schema 、list backup、list copy、list incarnation.

 

你可能感兴趣的:(oracle,oracle)