ora体系2,session,监听口令,诊断日志,深层控制文件

ORA体系2

1.连接

查看session相关信息

show  parameter session

口令文件:远程登陆
oracle启动监听,库内

lsnrctl start  -----命令行,或库内加!
alter system register  ---库内

远程命令行,sqlplus scott/scott@192.168.3.88:1521/prod
用户密码ip和实例
路径为$ORACLE_HOME/dbs/orapwprod

缺少这个文件后重建

which orapwd

进入路径后,启动文件,执行如下命令

orapwd file=/u01/oracle/dbs/orapwprod	password=oracle entries=3

直接启动会有操作选项,后加生成位置和名称,路径

$ORACLE_HOME/dbs/orapw$sid    ----参考格式,写必须要绝对路径

密码 最大连接数

2.自动诊断

相关路径查看

select * from v$diag_info;

adump —audit $ORACLE_BASE/admin/prod/audit

cdump —core

bdump —backgroup

udump —user

show parameter audit    -----adump查看
show parameter dump  ------其他dump查看

清空告警日志,

cat /dev/null > alert_prod.log

直接删掉也没有关系,下次启动会自动创建,

	tail -f /u01/diag/rdbms/prod/prod/trace/alert_prod.log    ---查看$ORACLE_BASE/diag/rdbms/$sid/$sid/tarce/alert_$sid.log

3.控制文件

控制文件,二进制文件,体积不大。
位置大致为$ORACLE_BASE/oradata/prod/
组成情况,
第一部分,db_name,archive_mode,datafile,logfile,charset
第二部分,scn,system change number(current scn ,checkpoint change两中scn ) ,timestamp-----scn,本质提供一致性

select current_scn from v$database;
select current_scn,scn_to_timestamp(current_scn) from v$database;     -------函数可以相互转换,to前后的scn和时间戳

第三部分,rman,metadata,
rman作用为保护数据库

查看关于数据库信息

select name,dbid,log_mode,open_mode from v$database;
select name from v$controlfile;

保护控制文件
1.多路复用
开机状态下,先修改参数,control 路径为静态参数,

create pfile from spfile;   -----	库开启时,先备份
alter  system set control_file='','','' scope=spfile;       -----设置格式
alter  system set control_files='/u01/fast_recovery_area/PROD/controlfile/o1_mf_kcwq7x83_.ctl','/u01/fast_recovery_area/PROD/controlfile/o1_mf_kcwq7xcs_.ctl','/home/oracle/control.ctl' scope=spfile;

设置完成后关机,复制该控制文件到新添加的路径下
然后启动,show该参数,发现生效
若其中一个控制文件发生损坏(其中一个控制文件被删除会报错no such file,此时abort关闭数据库后,进行从cp其他的控制文件过来,再次启动即可,此处模拟损坏方式为

dd if=/dev/zero of=/home/oracle/control.ctl bs=2m count=1

),可以在日志中查看到

tail -f /u01/diag/rdbms/prod/prod/trace/alert_prod.log       ------具体路径结合实际

内容基本为

Errors in file /u01/diag/rdbms/prod/prod/trace/prod_ckpt_2561.trc:
ORA-00202: control file: '/home/oracle/control.ctl'
Errors in file /u01/diag/rdbms/prod/prod/trace/prod_ckpt_2561.trc  (incident=12097):
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
ORA-00202: control file: '/home/oracle/control.ctl'
Incident details in: /u01/diag/rdbms/prod/prod/incident/incdir_12097/prod_ckpt_2561_i12097.trc
Errors in file /u01/diag/rdbms/prod/prod/trace/prod_ckpt_2561.trc:
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
ORA-00202: control file: '/home/oracle/control.ctl'
CKPT (ospid: 2561): terminating the instance due to error 227
Sat Jul 02 08:30:39 2022
System state dump requested by (instance=1, osid=2561 (CKPT)), summary=[abnormal instance termination].
System State dumped to trace file /u01/diag/rdbms/prod/prod/trace/prod_diag_2549_20220702083039.trc
Dumping diagnostic data in directory=[cdmp_20220702083039], requested by (instance=1, 	osid=2561 (CKPT)), 	summary=[abnormal instance termination].
Instance terminated by CKPT, pid = 2561

库内此时进行的操作和反应为

SYS@ prod>alter system checkpoint;
alter system checkpoint
*
ERROR at line 1:
ORA-03113: 通信通道的文件结尾 进程 ID:
2579
会话 ID: 1 序列号: 5

进行恢复,两种方式
控制文件恢复和取消该控制文件的路径

1.取消该报错文件
使用pfile进行启动数据库,并对pfile内容进行修改
删除spfile

rm -rf /u01/oracle/dbs/spfileprod.ora      ----具体路径和文件名根据情况修改
 create spfile from pfile;              ----------根据之前备份的pfile进行恢复,数据库连接需要exit后重新连接,startup即可启动,此时恢复到了之前的只用两个控制文件的情况

2.备份控制文件

alter database backup controlfile to '/home/oracle/con.bak'

具体参照后期文章

3.重建控制文件

alter database backup controlfile to trace as '/home/oracle/con.bak.tarce'  -------其中可以查看到control文件重建语句

先shutdown,然后模拟一个控制文件损坏(删除一个控制文件),启动nomount下,复制文件中语句,注意文本中是两条类似语句,需要复制靠上的一条

此时实例启动状态为mount,手动alter为open

还需粘贴文本中靠后的一句表空间设置

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/fast_recovery_area/PROD/datafile/o1_mf_temp_kcwq87p2_.tmp'

4.日志

1.redo日志
相关online redo log file
redo log buffer

日志组至少两个
查看视图路径,v l o g f i l e , v logfile,v logfile,vlog,v$archived_log
member:镜像日志组,保护当前日志组,但是需要全部建立,因为每一个日志组都有可能成为当前日志组
查看日志组,col member for a60; ---------设置格式

select status,group#,member from v$logfile;

状态部分有字基本是坏了

alter system switch logfile;   ---------进行切换
select * from v$log;	   -------------------查看使用的日志组
 select name,sequence# from v$archived_log;

日志状态:current,active,inative,unused
active不能使用,不过一段时间后会变成inactive,刚切换的日志需要将数据写入(切换检查点会瞬间改变状态)

alter database add logfile group 4 '/u01/oradata/prod/redo04.log' size 50m;    -----添加日志组
alter database add logfile member '/home/oracle/redo04b.log' to group 4;    -----增加member镜面日志组,此处为单个的
alter database drop logfile member '/home/oracle/redo04b.log' ;    -----删除日志组,当前日志组的镜像不能删除,active下,member可以删除,但是group日志不行,底层物理文件没有被删除
alter database drop logfile group 4;   ---------删除组

删除组和添加日志组相互配合可实现日志组的扩容,删除日志组,并添加更大的日志组

2.归档日志
查看归档

archive log list;

开启归档需要
1.shutdown immediate
2.启动到mount
3.alter database archivelog
4.alter database open

show parameter recover;

查看快速恢复区,fra,fast recover area
使用show可以查看归档日志的format

手动设置归档

show parameter dest_1
alter system set log_archive_dest_1='location=/u01/arch';     --------语法注意,容易写错,确保目录存在、

额外参考

	alter system set log_archive_format ='arch_%t_%r_%s.log' scope=spfile;   ------指定格式
	alter system archive log current;    -----------在 RAC 下切换所有实例,仅适用于归档模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值