开机进入字符界面
/usr/dt/bin/dtconfig -d
要恢复使用图形登陆界面,请使用
/usr/dt/bin/dtconfig -e
使用svcadm disable cde-login关闭图形界面
使用svcadm enable cde-login打开图形界面
如果使用的是GDM
使用svcadm disable gdm关闭图形界面
使用svcadm enable gdm重新打开图形界面
(SNV上使用gdm,S10下可能是gdm-login…)
开机进入字符界面
/usr/dt/bin/dtconfig -d
要恢复使用图形登陆界面,请使用
/usr/dt/bin/dtconfig -e
使用svcadm disable cde-login关闭图形界面
使用svcadm enable cde-login打开图形界面
如果使用的是GDM
使用svcadm disable gdm关闭图形界面
使用svcadm enable gdm重新打开图形界面
(SNV上使用gdm,S10下可能是gdm-login…)
1、flush redo
ALTER SYSTEM FLUSH REDO TO target_db_name;
Note:1)11g新加功能,如果不是11g的data gurad 则直接跳至步骤2
2)只要主库能启动到mount状态,那么Flush 就可以把没有发送的归档和current online redo 发送到备库,如果Flush成功,数据不会丢失,执行步骤2
2、检查Gap
select thread#, low_sequence#, high_sequence# from v$archive_gap;
如果有,将对应的归档文件copy到备库,在注册它
alter database register physical logfile ‘filespec1’;
检查是否存在gap,如果无记录,继续执行步骤3,否则再尝试,确实不行,则执行步骤6
3、Stop Redo Apply
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
4、Finish Apply
1)在oracle 10gR2 或之后的版本:如果在备用库上有备用库日志文件
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH [force|wait|nowait];
Note:在执行这个命令的时候,如果主库和备库之间的网络中断了。 那么备库的RFS进程就会等待网络的连接,直到TCP超时。 因此在这种情况下,就需要加上Foce 关键字
2)在oracle 10gR2之前的版本:没有备库日志文件
alter database recover managed standby database finish skip standby logfile;
Note:如果执行了这条命令,就不能在进行recover standby database;
5、将备库切换成主库
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY [WITH SESSION SHUTDOWN];
Note:当我们正常切换的时候,如果提示我们需要介质恢复的时候执行,则执行步骤6,否则执行步骤7
6、强行切换(激活)
1)查找主库最后归档日志
SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#)
OVER (PARTITION BY thread#) AS LAST from V$ARCHIVED_LOG;
2)注册最近归档日志
ALTER DATABASE REGISTER PHYSICAL LOGFILE ‘filespec1’;
3)将主库的所有online redo copy到备库
4)Stop Redo Apply
alter database recover managed standby database cancel;
5)恢复备库
recover standby database until cancel;
Note:手工输入online redo尝试
6)激活备库
alter database activate standby database;
7、重启数据库
shutdown immediate;
startup
1、检查包
pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
如果提示:ERROR: information for “SUNWi1cs” was not found类似信息请执行2
2、安装缺少包
cd /cdrom/sol_10_910_x86/Solaris_10/Product
pkgadd -d . SUNWi1cs
3、修改内核参数
vi /etc/system
set noexec_user_stack=1
set semsys:seminfo_semmni = 100
set semsys:seminfo_semmns = 1024
set semsys:seminfo_semmsl = 256
set semsys:seminfo_semvmx = 32767
set shmsys:shminfo_shmmax = 4294967295
set shmsys:shminfo_shmmin = 1
set shmsys:shminfo_shmmni = 100
set shmsys:shminfo_shmseg = 10
4、创建用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -d /export/home/oracle -m -s /bin/bash oracle
passwd oracle
5、创建文件夹
mkdir -p /u01/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
6、修改用户环境变量
vi .profile
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=orcl
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
PATH=$PATH:$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
TEMP=/tmp
TMPDIR=/tmp
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib64:/usr/local/lib
export TMPDIR TEMP PATH NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH
7、开始安装
su – oracle
export DISPLAY=192.168.1.1:0.0
/tmp/database/runInstaller
note:使用xmanager映射出图形界面
1、语法
LAG (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)
LEAD (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)
2、说明
1)lag 和lead 可以 获取结果集中,按一定排序所排列的当前行的上下相邻若干offset 的某个行的某个列(不用结果集的自关联)
2)lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是超出记录窗口时的默认值
3)lag ,lead 分别是向前,向后
3、准备试验环境
CREATE TABLE t(t_NAME VARCHAR2(10),t_order NUMBER); INSERT INTO t VALUES('aaaa',1); INSERT INTO t VALUES('bbbb',2); INSERT INTO t VALUES('cccc',3); INSERT INTO t VALUES('dddd',6); INSERT INTO t VALUES('eeee',4); INSERT INTO t VALUES('ffff',5); SELECT * FROM t; T_NAME T_ORDER ---------- ---------- aaaa 1 bbbb 2 cccc 3 dddd 6 eeee 4 ffff 5 6 rows selected
4、测试
SELECT T_ORDER, LAG(T_NAME, 1,'lag_fei') OVER(ORDER BY T_ORDER) "LAG", T_NAME, LEAD(T_NAME, 1,'lead_fei') OVER(ORDER BY T_ORDER)"LEAD" FROM T ORDER BY T_ORDER; T_ORDER LAG T_NAME LEAD ---------- ---------- ---------- ---------- 1 lag_fei aaaa bbbb 2 aaaa bbbb cccc 3 bbbb cccc eeee 4 cccc eeee ffff 5 eeee ffff dddd 6 ffff dddd lead_fei 6 rows selected
一、主库
查看当前数据库状态
select database_role,switchover_status from v$database;
当switchover_status为SESSIONS ACTIVE时
alter database commit to switchover to physical standby with session shutdown;
否则执行
alter database commit to switchover to physical standby;
切换成功关闭数据库
shutdown immediate;
startup mount;
note:11g 可以直接置于 read only 使用命令startup
开启实时应用
alter database recover managed standby database using current logfile disconnect from session;
恢复备库未利用日志
alter database recover managed standby database disconnect from session;
二、备库
查看当前数据库状态
select database_role,switchover_status from v$database;
如果是switchover_status为recovery needed或switchover latent 恢复数据库
alter database recover managed standby database disconnect from session;
切换数据库
alter database commit to switchover to primary with session shutdown;
开启数据库
startup
–查询除自己进程外的其他进程,并kill掉
SELECT 'kill -9 '||p.spid,'alter system kill session '''||v.sid||','||v.SERIAL#||'''' FROM V$SESSION v ,v$process p WHERE v.TYPE = 'USER' AND v.SID <> (SELECT DISTINCT SID FROM V$MYSTAT) AND v.paddr=p.addr;
三、补充11g官方文档处理顺序和操作语句
1、主库切换
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
SHUTDOWN ABORT;
STARTUP MOUNT;
2、备库切换
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
ALTER DATABASE OPEN;
3、开启应用(新备库–原主库)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
![]() |
|