1 在 hp unix上安装 oracle 10g ,这个不解释,直接安装好。
创建组oinstall,dba,用户oracle
[root@node1 ~]# groupadd oinstall
[root@node1 ~]# groupadd dba
[root@node1 ~]# useradd -d /home/oracle -g oinstall -G dba oracle
设置oracle用户密码
[root@node1 ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
提示:
[root@node1 ~]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
如果是非虚机安装,要注意记录下用户和组ID,在其它机器上创建同名组时,务必确认组ID和用户ID与此相同。
修改oracle用户的初始化参数文件
[root@node1 ~]# vi /home/oracle/.bash_profile
增加如下内容:
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/ora10g
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=RACDB1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
ulimit -u 16384 -n 65536
umask 022
此处注意oracle_sid的名称要与后续创建数据库时指定的sid相同(注意大小写),不然你每次想通过本机登录的方式进入oracle
都得重新export ORACLE_SID了。
创建/opt/ora10g目录,要注意该目录所有者或oracle用户的权限
[root@node1 ~]# mkdir /opt/ora10g
由于该目录主要由oracle用户操作,因此我们将其所有者改为oracle
[root@node1 ~]# chown oracle.oinstall /opt/ora10g
配置内核参数
[root@node1 ~]# vi /etc/sysctl.conf
增加或修改下列内容
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
提示,上述参数中通常只有一项需要我们更改,即kernel.shmmax,该参数推荐设定为物理内存的一半
然后:
[root@node1 Server]# sysctl -p
让设置生效
提高 Oracle 用户的 shell 限制
设置oracle使用的文件数权限
[root@node1 ~]# vi /etc/security/limits.conf
增加下列内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
修改安全限制
[root@node1 ~]# vi /etc/pam.d/login
增加:
session required /lib/security/pam_limits.so
配置Hangcheck计时器
[root@node1 ~]# vi /etc/rc.local
增加:
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
2 在同一个机器上需要安装4个不同的实例,用dbca建立实例,注意字符集选择ZHS16GBK,日期和区域都默认为AMERICAN
这里有个要注意的地方就是db文件的位置默认是放在 oracle_home目录下的,这个要指定到单独的位置,我们一般会在根目录下建立一个oradata的目录,
所有的dbf数据文件,包括system01.dbf, 放在此目录下。再按照不同的实例,建立不同的子目录,方便磁盘空间的管理和物理备份
3 四个实例建立好以后,要手工修改listener.ora文件, 把四个实例的监听都加上,加完以后重启监听。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PL***tProc)
(ORACLE_HOME = /opt/oracle/product/9.2)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ora9)
(ORACLE_HOME = /opt/oracle/product/9.2)
(SID_NAME = ora9)
)
(SID_DESC =
(GLOBAL_DBNAME = B3)
(ORACLE_HOME = /opt/oracle/product/9.2)
(SID_NAME = B3)
)
)
4 export ORACLE_SID, sqlplus / as sysdba 分别连接到不同的实例,启动实例。
5 从其它的数据库上expdp一个库过来, ftp或者scp dmp文件到本地,再执行impdp,导入数据库。
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;
四、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
具体的看 david的blog
http://blog.csdn.net/tianlesoftware/article/details/6260138