ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle体系结构学习笔记

oracle体系结构学习笔记

原创 Linux操作系统 作者:marvinoracle 时间:2010-11-11 20:12:39 0 删除 编辑

oracle 学习笔记
一、如何创建一个初始化参数文件pfile?
cp init.ora  $ORACLE_HOME/dbs/initSID.ora;
pfile文件是一个文本文件可以用文本编辑器打开修改而spfile文件是一个二进制文件不可修改,但是spfile中的内容跟pfile中的内容完全相同。我们也可以用命令来创建spfile文件:
create spfile from pfile;或者create spfile='$ORACLE_HOME/dbs/spfileSID.ora' from pfile='$ORACLE_HOME/dbs/initSID.ora'
也可以根据spfile 创建pfile . create pfile from spfile;


二、根据日志文件手工创建pfile,从而启动instance;
切换到目录:/oracle/admin/orcl/bdump/  

[oracle@mylinux bdump]$ ls
alert_ORCL.log      orcl_lgwr_4755.trc  orcl_p000_4447.trc  orcl_p001_4474.trc
orcl_lgwr_4427.trc  orcl_lgwr_6878.trc  orcl_p000_4467.trc  orcl_p001_4489.trc
orcl_lgwr_4447.trc  orcl_lgwr_6974.trc  orcl_p000_4472.trc  orcl_p001_4498.trc
orcl_lgwr_4452.trc  orcl_lgwr_7452.trc  orcl_p000_4487.trc  orcl_p001_4552.trc
orcl_lgwr_4467.trc  orcl_lgwr_7519.trc  orcl_p000_4496.trc  orcl_p001_4556.trc
orcl_lgwr_4476.trc  orcl_lgwr_7574.trc  orcl_p000_4550.trc  orcl_p001_6900.trc
orcl_lgwr_4520.trc  orcl_lgwr_8003.trc  orcl_p000_4554.trc  orcl_pmon_18213.trc
orcl_lgwr_4530.trc  orcl_lgwr_8107.trc  orcl_p000_6898.trc  orcl_pmon_6870.trc
orcl_lgwr_4534.trc  orcl_lgwr_9131.trc  orcl_p001_4449.trc
orcl_lgwr_4668.trc  orcl_lgwr_9246.trc  orcl_p001_4469.trc


查看strings alert_ORCL.log 从里面copy出如下内容


 processes                = 150
  __shared_pool_size       = 54525952
  __large_pool_size        = 4194304
  __java_pool_size         = 4194304
  __streams_pool_size      = 0
  sga_target               = 167772160
  control_files            = /oracle/oradata/orcl/control01.ctl, /oracle/oradata/orcl/control02.ctl, /oracle/oradata/orcl/control03.ctl, /oracle/oradata/orcl/control04.ctl
  db_block_size            = 8192
  __db_cache_size          = 96468992
  compatible               = 10.2.0.1.0
  db_file_multiblock_read_count= 16
  db_recovery_file_dest    = /oracle/flash_recovery_area
  db_recovery_file_dest_size= 2147483648
  undo_management          = AUTO
  undo_tablespace          = UNDOTBS1
  remote_login_passwordfile= EXCLUSIVE
  db_domain                =
  dispatchers              = (PROTOCOL=TCP) (SERVICE=orclXDB)
  job_queue_processes      = 10
  background_dump_dest     = /oracle/admin/orcl/bdump
  user_dump_dest           = /oracle/admin/orcl/udump
  core_dump_dest           = /oracle/admin/orcl/cdump
  audit_file_dest          = /oracle/admin/orcl/adump
  db_name                  = orcl
  open_cursors             = 300
  pga_aggregate_target     = 16777216

  切换目录到 /oracle/product/10.2.0/db_1/dbs 目录下,用如vi新建一个pfile文件
  vi initSID.ora  打开后 粘贴上面copy中的内容保存并退出。

  启动实例的时候我们可以直接指定pfile文件来启动
  sqlplus /nolog
  conn / as sysdba
  startup pfile=$ORACLE_HOME/dbs/initSID.ora


  三、手工删除一个数据库
  第一步:在dbs目录中带有数据库名的文件都删除
  rm -f hc_ORCL.dat  initORCL.ora  lkORCL    orapworcl  spfileORCL.ora
  第二步:在oradata目录中的带有数据库名的文件都删除
  rm -fR orcl/
  第三步:在admin目录下实例名给删除掉
  rm -fR orcl/
  四、linux 命令string 创建一个pfile
  strings spfileORCL.ora > initorcl.ora
  vi initorcl.ora    全局替换实例名
  :%s/orcl/MIS/g     把orcl实例全部替换为MIS

  五、新增控制文件
  新增控制文件分四步:
  第一步:
  alter system set control_files='/oracle/oradata/orcl/control01
                                                 .ctl', '/oracle/oradata/orcl/con
                                                 trol02.ctl', '/oracle/oradata/or
                                                 cl/control03.ctl', '/oracle/orad
                                                 ata/orcl/control04.ctl'  scope=spfile;
  第二步:
  shutdown immediate;
  第三步:
  cp control03.ctl   control04.ctl 

  strings spfileSID.ora  里面control_files中增加了一条control04.ctl
  第四步:
  startup

  根据pfile文件创建control文件
  第一步:
  shutdown immediate;
  第二步:
  vi initSID.ora  在control_files行添加'/oracle/orad
                                                 ata/orcl/control05.ctl'
  :wq   保存并退出。
  第三步:
  cp control02.ctl   control05.ctl 
  第四步:
  startup pfile=$ORACLE_HOME/dbs/initSID.ora
  OK好了可以查看一下
  show parameter cont;

  六、维护联机重做日志文件
  REDO文件的功能描述
  REDO文件存储所有数据库的变更内容和每一次变更所需的重做脚本,是数据库不可缺少的一部分,如果REDO GROUP中只有一个REDO文件,同时这个REDO文件被损坏,则系统切换到这个REDO GROUP时,数据库将直接DOWN机;如果REDO GROUP中有多个REDO文件,其中一个或者多个REDO被损坏,只要该组中还有一个好的REDO文件,则系统将报警(写入alert.log文档中),数据库仍然可以超常运行。

REDO文件在数据库恢复时提供前滚所需的内容。

查看REDO相关信息的视图有:V$LOG,V$LOGFILE,V$INSTANCE_RECOVERY
一般情况下,最好有3-5个REDO GROUP,每个REDO GROUP中有两个成员,放在不同的磁盘资源上。同一个REDO GROUP中的REDO文件的大小尽量设置为相同,否则系统以最小的一个为基准,比较浪费空间。各个REDO GROUP的大小也最好一致。
SQL> select * from v$log;

STATUS状态的解释:

CURRENT:当前的REDO文件,REDO BUFFER的内容有LGWR进程写入当前REDO文件,如果丢失该组文件,会造成数据的丢失.

ACTIVE :文件中含有的内容还没有写入到ARCHIVELOG文件中,如果丢失该组文件也会造成数据的丢失.

INACTIVE:已经归档,丢失文件不会造成数据丢失,不过在做数据库的恢复时,该组文件可以用来做前滚操作.


  1、手动让日志组切换
  alter system switch logfile
  2、adding redo files groups 添加日志文件组
  desc v$logfile;
  alter database add logfile group 4 (/oracle/oradata/orcl/redo04.log)  size 50M;
  3、add redo file members 添加日志成员
  alter database add logfile '/oracle/oradata/orcl/redo05.log' to group 4
  4、dropping redo file members   删除日志成员
  alter database drop logfile '/oracle/oradata/orcl/redo03.log'
  rm -f redo05.log
  5、dropping redo files grouos 删除日志组
  alter database drop logfile group 4
  6、迁移或重命名
  第一步::shutdown immediate;
  第二步:cp /oracle/oradata/orcl/redo04.log  ..  
  第三步: mv redo04.log  redo05.log;
  第四步:alter database mount;
  第五步:alter database rename file 'oracle/oradata/orcl/redo03.log' to '/oracle/oradata/redo03.log'
  第六步:alter database open

 

 

 

查看表空间使用情况
Posted on 2007-03-05 22:45 生活在别处 阅读(4823) 评论(0)  编辑  收藏 
查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;

====================================

set pages 100
col ts_name form. a20 head 'Tablespace'
col pieces form. 9990 head 'Pcs'
col ts_size form. 999,990 head 'SizeMb'
col largestpc form. 999,990 head 'LrgMB'
col totalfree form. 999,990 head 'FreeMb'
col pct_free form. 990 head '%Free'
col whatsused form. 999,990 head 'Used'
col pct_used form. 990 head '%Used'
col problem head 'Prob??'
--spool /tmp/tbs_size.log

select q2.other_tname ts_name, pieces, ts_size ts_size,
        nvl(largest_chunk,0) largestpc, nvl(total_free,0) totalfree,
        nvl(round((total_free/ts_size)*100,2),0) pct_free,
        ts_size-total_free whatsused,
        nvl(100-round((total_free/ts_size)*100,2),100) pct_used,
        decode(nvl(100-round((total_free/ts_size)*100,0),100),
               85,'+',86,'+',87,'+',88,'+',89,'++',90,'++',91,'++',
               92,'++',93,'++',94,'+++',95,'+++',96,'+++',97,'++++',
               98,'+++++',99,'+++++',100,'+++++','') problem
  from (select dfs.tablespace_name,count(*) pieces,
               round(max(dfs.bytes)/1024/1024,2) largest_chunk,
               round(sum(dfs.bytes)/1024/1024,2) total_free
         from dba_free_space dfs group by tablespace_name) q1,
       (select tablespace_name other_tname,
               round(sum(ddf2.bytes)/1024/1024,2) ts_size
          from dba_data_files ddf2 group by tablespace_name) q2
 where q2.other_tname = q1.tablespace_name(+)
 order by nvl(100-round((total_free/ts_size)*100,0),100) desc;


 七、表空间的类型分为三类:permanent、undo、temporary。
 1、查看表空间情况:
SQL> col file_name format a40
SQL> col tablespace_name format a30
SQL> select file_name, tablespace_name from dba_data_files;

FILE_NAME                                TABLESPACE_NAME
---------------------------------------- ------------------------------
/oracle/oradata/orcl/users01.dbf         USERS
/oracle/oradata/orcl/sysaux01.dbf        SYSAUX
/oracle/oradata/orcl/undotbs01.dbf       UNDOTBS1
/oracle/oradata/orcl/system01.dbf        SYSTEM
/oracle/oradata/orcl/example01.dbf       EXAMPLE
/oracle/oradata/orcl/paul01.dbs          PAUL
/oracle/oradata/orcl/wenchuan01.dbf      WENCHUAN
/oracle/oradata/orcl/myundo01.dbf        MYUNDO
8 rows selected.
2、创建表空间
create tablespace paul datafile '/oracle/oradata/orcl/mypaul01.dbf ' size 20M;
3、手工创建临时表空间
create temporary tablespace mytemp
tempfile '/oracle/oradata/orcl/mytempfile01.dbf ' size 20M extent management local;
select tablespace_name,contents from dba_tablespaces;
4、创建本地管理表空间
create tablespace wenchun
datafile '/oradata/orcl/wenchun01.dbf' size 20M extent management local uniform. size 128k;
5、修改表空间为只读或读写
alter tablespace wenchun read only ;  ----前提是数据必须都commit
alter tablespace wenchun read write;
6、修改表空间为在线或离线
alter tablespace wenchun online;
alter tablespace wenchun offline;
7、查询表空间哪些是自动增长的
SQL> desc dba_data_files;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 FILE_NAME                                          VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                    VARCHAR2(30)
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                     VARCHAR2(3)
 MAXBYTES                                           NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                      VARCHAR2(7)

SQL> col file_name format a40
SQL> col tablespace_name format a30
SQL> select file_name,tablespace_name,autoextensible from dba_data_files;

FILE_NAME                                TABLESPACE_NAME                AUT
---------------------------------------- ------------------------------ ---
/oracle/oradata/orcl/users01.dbf         USERS                          YES
/oracle/oradata/orcl/sysaux01.dbf        SYSAUX                         YES
/oracle/oradata/orcl/undotbs01.dbf       UNDOTBS1                       YES
/oracle/oradata/orcl/system01.dbf        SYSTEM                         YES
/oracle/oradata/orcl/example01.dbf       EXAMPLE                        YES
/oracle/oradata/orcl/paul01.dbs          PAUL                           NO
/oracle/oradata/orcl/wenchuan01.dbf      WENCHUAN                       NO
/oracle/oradata/orcl/myundo01.dbf        MYUNDO                         NO

8 rows selected.
8、修改表空间数据文件的大小
alter database datafile '/oracle/oradata/orcl/paul01.dbf' resize 40M;
select file_name,tablespace_name,bytes from dba_data_files;
9、给表空间添加数据文件
alter tablespace wenchun add datafile '/oracle/oradata/orcl/wenchun02.dbf' size 20M;
10、移动表空间的数据文件到xx磁盘里
方法一:
(1)、alter tablespace wenchun offline;
select file_name,tablespace_name,bytes from dba_data_files   ----离线后的bytes就为空了。
(2)、mv wenchun02.dbf ..
(3)、alter tablespace wenchun rename datafile '/oracle/oradata/orcl/wenchun02.dbf'
to '/oracle/oradata/wenchun02.dbf';   ----相当于指针指过去目的地。
(4)、alter tablespace wenchun online;

方法二:
(1)、shutdown immediate;
(2)、mv wenchun02.dbf orcl/
(3)、startup mount;
(4)、alter database renmae file '/oracle/oradata/wenchun02.dbf' to '/oracle/oradata/orcl/wenchun02.dbf';
(5)、alter database open;
11、删除表空间
drop tablespace wenchun including contents and datafiles;
12、查看undo表空间是否是自动模式
show parameter undo;
desc dba_tablespaces;
select tablespace_name,contents from dba_tablespaces;
(1)、创建一个undo表空间
create undo tablespace myundo datafile '/oracle/oradata/orcl/myundo01.dbf' size 10M;
select tablespace_name,contents from dba_tablespaces;
(2)、如何切换undo表空间
alter system set undo_tablespace=myundo;
(3)、删除undo表空间
drop tablespace myundo;
rm -f myundo.dbf;

 


 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24531354/viewspace-677954/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-09-02

  • 博文量
    67
  • 访问量
    191818