分类目录归档:Oracle

Solaris 10安装oracle 10.2

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映射出图形界面

发表在 Oracle安装升级 | 评论关闭

lag() lead()函数使用

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
发表在 Oracle 开发 | 评论关闭

Data Gurad switchover切换(Physical Standby Databases)

一、主库
查看当前数据库状态
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;

发表在 Data Guard | 评论关闭