Oracle 日常操作 (开启归档等)

1.启动

sqlplus / as sysdba

如果提示connected to a idle instance,说明数据库实例未启动

可以通过startup 启动 {startup nomount,startup mount,startup}

真实启动的阶段

a 】 nomount阶段  数据库读取参数文件,分配内存,SGA+PGA,启动后台进程,生成实例,实例状态是started(通过select语句查看v$instance的status)

b】  mount阶段,读取控制文件,获取文件位置记录数据库状态,维护数据库一致性,此时如果要继续启动,可以通过以下命令继续启动。但是也只是附加了数据库

alter database mount

此时通过select语句可以查到数据库实例的状态已经从started变更为了mounted状态

select status from v$instance;

c】open阶段,检查三大文件--参数文件,数据文件,在线日志文件,检查数据库一致性

alter database open

检查数据库一致性

select FILE#,CHECKPOINT_CHANGE# from v$datafilep;

如果出现的文件列表的序号都相同,那么 数据库就一致

平时使用的话,一般是直接startup 包含了三个阶段的启动

2.启动监听

在系统命令行状态下:lsnrctl start  启动监听,加速监听:sqlplus下:alter system register

如果要在sqlplus下启动监听,则在sqlplus下直接通过叹号加监听启动命令的方式启动监听即可

!lsnrctl start

3.关库

关库首先要先关闭监听  lsnrctl stop 关闭监听

其次关闭数据库 :shutdown immediate  一致性关库

4.客户端配置

  a】 下载对应版本的oracle客户端安装包,32位,PL/DEVELOPER 不支持64

  b】 安装略

  c】 配置监听network/admin下

  

11GR2前不能有空格,必须顶格

 

5.密码过期处理

  过期策略

select * from dba_users;

select username,profile from dba_users where username='SCOTT';

select * from dba_profiles;

默认存活时间为180天

修改password_life_time为无限制

sqlplus  :alter profile default limit password_life_time unlimited 就可以更改策略

然后一定要给用户更改密码 alter user xxx identified by xxxxxxx

6.监听日志清理

$ORACLE_BASE/diag/tnslsnr/主机名/listener/alert/log.xml是告警日志 ,达到11M的时候会自动切换,重新生成

真正的监听日志

find $ORACLE_BASE -name listener 

进入trace目录下,listener.log 这个是监听日志,最大4G

登入到监听界面

lsnrctl>  show

查看日志状态

lsnrctl> show log_status

关闭日志

lsnrctl> set log_status off

回到linux系统界面,mv重新命名原来的日志,

开启日志

lsnrctl> set log_status on   ,等待生成新的日志以后,删除原来的日志

重新加载

lsnrctl>reload

这样清理监听对业务没有影响。

7.自动收集统计信息job

CBO:优化器生成执行计划

查询定时统计任务

select t1.window_name,t1.repeat_interval,t1.duration,enabled from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 where t1.window_name = t2. window_name and t2.window_group_name IN ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED');

关闭自动执行任务

#关闭自动执行任务
BEGIN
DBMS_SCHEDULER.DISABLE(
name=>'"SYS"."SATURDAY_WINDOW"',
force=>TRUE);
END;
/

修改定时任务

BEGIN
dbms_scheduler.set_attribute('SATURDAY_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT;byhour=10;byminute=0;bysecond=0;)
dbms_scheduler.set_attribute('SATURDAY_WINDOW','DURATION','+000 04:00:00');
end;
/

开启定时任务

BEGIN
DBMS_SCHEDULER.ENABLE(
name=>'"SYS"."SATURDAY_WINDOW"');
END;
/

8.11G RAC的关库及启库

查看集群状态

crs_stat -t -v

RAC关闭

a】查询实例及DB NAME,instance_name

show parameter name
srvctl status listener #查看监听状态,使用grid用户 su - grid
srvctl stop listener #停止监听
#停库
srvctl stop database -d DBNAME
#停实例
srvctl stop instance -o immediate -d DBNAME -i instance_name
#停止集群服务 root用户
crsctl stop cluster -all
#停止高可用 HAS root用户
crsctl stop has
#启动数据库,服务设置自启动,服务器启动后自己拉起数据库
#在每个节点上找到crsctl路径 启动或关闭整个crs
find / -name crsctl 找到路径
cd 路径
crsctl start crs #可以拉起整个crs服务
crsctl start cluster #启动集群

9.RAC的日常管理命令

#检查集群的命令
crsctl  check cluster 
#检查集群的状态
crs_stat -t -v
#ocr磁盘校验
ocrcheck
#查看数据库状态
srvctl status database -d 数据库名
#查看数据库配置
srvctl config database -d 数据库名 -a
#节点应用状态
srcctl status nodeapps
#ASM实例
srvctl status asm
#监听
srvctl status listener
srvctl config status -a
#scan
srvctl status scan
#VIP查询
srvctl config vip -n rac1

10.oracle归档日志

#查看是否开启归档
archive log list
#通过数据库查询也能获取
select name,log_mode from v$database;

归档路径选择

oracle判断归档目的地时按如下优先级选取

 1.log_archive_dest_n

 2.db_recover_file_dest指定的快速恢复区

 3.$ORACLE_HOME/dbs参数指定的位置

一般不把归档路径放在快速闪回区

更改归档路径

mkdir -p /u01/app/oracle/arch

sqlplus / as sysdba

alter system set log_archive_dest_1='location=/u01/app/oracle/arch' scope=both;

show parameter log_archive_dest_1

alter system set log_archive_format='arch_prod_t%_%s_%r.dbf' scope=spfile;

 

#参照spfile创建静态文件pfile
create pfile='xxxxxxx' from spfile='xxxxxxx';
#参照pfile创建动态文件spfile
create spfile='xxxxx' from pfile='xxxxx';
#正常关库
shutdown immediate;
#启库到挂载附加状态,但是数据库并没有进入到打开状态
startup mount
#查看归档日志是否起效
archive log list
#更改数据库为归档模式
alter database archivelog;
#打开数据库
alter database open;

 

posted @ 2022-07-24 10:20  BlackData  阅读(294)  评论(0编辑  收藏  举报