Centos7下安装Oracle 11g,并还原Oracle10g数据库备份数据 一. 安装ORACLE服务器 1)修改Linux操作系统参数 1. 修改用户的SHELL的限制
输入命令:vim /etc/security/limits.conf
1 2 3 4 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
2.修改/etc/pam.d/login 文件
输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。
1 2 3 session required /lib/security/pam_limits.so session required pam_limits.so
3.修改linux内核,
修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p
4. 编辑 /etc/profile ,
输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。
1 2 3 4 5 6 7 8 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
2) 创建相关用户和组
作为软件安装和支持组的拥有者。
1 2 3 4 groupadd dba groupadd oinstall useradd oracle -g oinstall -G dba passwd oracle #=>htsc@001
1. 创建数据库软件目录
创建数据文件存放目录,目录的位置
更改目录属主为Oracle用户所有,输入命令:
1 chown -R oracle:oinstall /data/app
2.配置oracle用户的环境变量 1 2 3 4 5 6 7 8 9 10 11 su – oracle cd ~ vi .bash_profile ------------------------------------------------------------- export ORACLE_HOSTNAME=iZ2gf05w9w7nj80s0yp519Z export ORACLE_BASE=/data/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/ export ORACLE_SID=tzoa export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
oracle用户环境变量生效执行
1 source /home/oracle/.bash_profilee
3). 静默安装Oracle
如果直接解压缩后执行安装命令,会报一堆错误。 所以要提前做很多准备工作
1 ./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq
1. 创建并激活Swap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #查看系统当前Swap情况 swapon -s ---------------------------------------------------------------------------- 1 Filename Type Size Used Priority 2 /swapfile file 524284 0 -1 #如果未出现输出需要创建激活Swap -------------------------------------------------- #检查系统看是否有足够空间设置Swap df -hal #使用dd命令创建Swap文件 dd if=/dev/zero of=/swapfile bs=1024 count=512k #格式化Swap mkswap /swapfile #激活Swap swapon /swapfile
2. 安装缺少的依赖
缺少lib依赖,总之缺少哪些就去搜索哪些来安装
1 2 3 rpm -ivh libXp-1.0.2-2.1.el7.x86_64.rpm --nodeps --force rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
安装完毕后 oracle netca找不到命令
3. 解压缩安装包 1 2 unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
这里 解压缩后目录为 /data/database
修改安装包目录权限
1 chown -R oracle:oinstall database
创建 /data/etc/ 用来存放静默安装文件·
1 2 mkdir /data/etc/ chown -R oracle:oinstall /data/etc/
4. 静默安装数据库
拷贝修改缺省响应文件
1 2 3 cp /data/database/response/* /data/etc/ su root chmod 700 /data/etc/*
vim db_install.rsp
修改下列参数,其余保留缺省
1 2 3 4 5 6 7 8 ORACLE_HOME=/data/app/oracle/product/11.2.0 ORACLE_BASE=/data/app/oracle INVENTORY_LOCATION=/data/app/oracle/inventory oracle.install.db.InstallEdition=EE oracle.install.db.isCustomInstall=true oracle.oracle.install.db.OPER_GROUP=dba oracle.install.db.OPER_GROUP=dba :wq
编辑保存后退出后使用响应文件安装数据库
1 2 3 su oracle cd /data/database ./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq
中间会暂停提示切换root用户执行两个脚本, 这时候可以再打开一个远程端口用root用户执行两个脚本
1 2 3 su root /data/app/oracle/inventory/orainstRoot.sh /data/app/oracle/product/11.2.0/root.sh
切换到oracle安装窗口继续完成安装
5. 静默安装监听(实例) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 cp dbca.rsp tzoa_install.rsp ---------------------------------------------------------------------- cp一个dbca.rsp重命名为tzoa_install.rsp文件,编辑如下: ----------------------------------------------------------------------- #[GENERAL] #RESPONSEFILE_VERSION = "11.2.0" #OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "tzoa" SID = "tzoa" TEMPLATENAME = "General_Purpose.dbc" SYSPASSWORD = "tzoa" SYSTEMPASSWORD = "tzoa" EMCONFIGURATION = "LOCAL" SYSMANPASSWORD = "tzoa" DBSNMPPASSWORD = "tzoa" #DATAFILEDESTINATION = /data/app/oracle/oradata #RECOVERYAREADESTINATION=$ORACLE_BASE/flash_recovery_area STORAGETYPE=FS CHARACTERSET = "ZHS16GBK" NATIONALCHARACTERSET= "UTF8" :wq ---------------------------------------------------------------------------------------------------- su - oracle dbca -silent -responseFile /data/etc/tzoa_instal.rsp -------------------------------------------------------------------------------------------------------
重复上面步骤再安装tzty
附:oracle默认系统用户名/密码
用户名 / 密码
登录身份
说明
sys/change_on_install
SYSDBA 或 SYSOPER
不能以 NORMAL 登录,可作为默认的系统管理员
system/manager
SYSDBA 或 NORMAL
不能以 SYSOPER 登录,可作为默认的系统管理员
sysman/oem_temp
sysman
为 oms 的用户名
scott/tiger
NORMAL
普通用户
aqadm /aqadm
SYSDBA 或 NORMAL
高级队列管理员
Dbsnmp/dbsnmp
SYSDBA 或 NORMAL
复制管理员
4) 登陆启动ORACLE 1. 启动Oracle实例 1 2 3 4 5 6 su oracle source /home/oracle/.bash_profile sqlplus / as sysdba Connected to an idle instance. SQL> startup; //startup mount; 一般自动装载数据库,未装载加mount shutdown ORACLE instance started.
命令
说明
用户是否可以访问
startup nomount
启动实例不加载数据库
不能
startup mount
启动实例加载数据库不打开数据库
不能
startup
启动实例,加载数据库,打开书库看,
可以
STARTUP RESTRICT
成功打开数据库但是只允许dba访问
可以
STARTUP FORCE
数据库挂起时候,强制启动
SHUTDOWN IMMEDIATE
常用方式,快速,干净关闭
SHUTDOWN TRANSACTIONAL
等待事务完成之后关闭
SHUTDOWN ABORT
数据库遇到问题,需要立即强制关闭
2. 查看修改服务名 1 2 3 4 5 6 7 8 9 10 su oracle cd ~ source .bash_profile sqlplus / as sysdba SQL>show parameter service_name; //查看当前service SQL>alter system set service_names='tzoa,tzty'; // #原来正确的修改方式是这样的,service_names 复数嘛, 用,分隔开多个service_name SQL>exit lsnrctl service; //查看验证修改是否成功? ----------------------------------------------------------------
3. 创建表空间 1 2 3 4 5 6 7 //登陆oracle 并且bash生效 sqlplus / as sysdba SQL>select name from v$datafile; ---------------------------------------------------- 先查一下表空间文件存储位置后面 ---------------------------------------------------- SQL>create tablespace sw_data datafile '/data/app/oracle/oradata/tzoa/tzoa.dbf' size 512M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
参数
说明
sw_data
表空间名称, 这个最好与旧系统表空间名一致,否则创建索引会出错。
‘/data/app/oracle/oradata/tzoa/tzoa.dbf’
表空间物理文件名
删除修改表空间
1 2 3 4 //删除表空间 drop tablespace swccnp including contents; //修改用户默认表空间 ALTER USER cmsdevor DEFAULT TABLESPACE TZORADB1;
4. 创建用户分配表空间 1 2 3 4 5 6 7 create user tzoa identified by tzoa default tablespace sw_data temporary tablespace tzoa_temp; create user swcc identified by swcc default tablespace sw_data temporary tablespace swcc_temp; create user swsso identified by swsso default tablespace sw_data temporary tablespace swsso_temp; grant connect,resource,dba to tzoa; grant connect,resource,dba to swcc; grant connect,resource,dba to swsso;
到这里我们就可以使用用户名密码, 远程登陆oracle数据库了,但是登陆后是空数据库,后面我们会从旧数据库导出,并还原到新数据库中
二. 备份还原数据库(imp exp) 1). 备份数据库 1 2 3 4 exp tzoa/tzoa@10.171.251.13:1521/tzoa file=E:\backup\tzoa.dmp exp swcc/swcc@10.171.251.13:1521/tzoa file=E:\backup\swcc.dmp exp swsso/swsso@10.171.251.13:1521/tzoa file=E:\backup\swsso.dmp exp cmsdevor/password@10.171.251.13:1521/tzty file=E:\backup\tzty.dmp
**备份oracle10,需要安装oracle10客户端, 还原到oracle11g 再 安装11g客户端还原数据 **
2)还原数据库 1 2 3 4 imp tzoa/tzoa@10.171.251.13:1521/tzoa file=E:\backup\tzoa.dmp imp swcc/swcc@10.171.251.13:1521/tzoa file=E:\backup\swcc.dmp imp swsso/swsso@10.171.251.13:1521/tzoa file=E:\backup\swsso.dmp imp cmsdevor/password@10.171.251.13:1521/tzty file=E:\backup\tzty.dmp
三, 错误处理 1). 未激活Swap
Checking swap space: 0 MB available, 150 MB required. Failed <<<< 遇到问题处理
处理方法: 参考创建激活Swap
2). 安装目录权限问题
CAUSE: The given response file is either not accessible or do not exist. ACTION: Give a correct response file location. (Note: relative path is not supported) A log of this session is currently saved as: /tmp/OraInstall2021-09-23_09-39-42AM/installActions2021-09-23_09-39-42AM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at “SYS.UTL_FILE”, line 536
ORA-29283: invalid file operation
3). ORA-01102
cannot mount database in EXCLUSIVE mode(无法以独占模式装载数据库)
1 2 3 4 5 6 7 8 9 10 11 $ cd $ORACLE_HOME/dbs $ ls sgadef* sgadef* not found ORACLE_HOME $ ls lk* $ORACLE_HOME/db_1/dbs/lktzoa lktzoa 果然,lk<sid>文件没有被删除。将它删除掉 $ rm lk*
4). ORA-00205
error in identifying control file, check alert log for more info : (
1 2 3 4 5 6 7 8 9 10 11 Total System Global Area 608174080 bytes Fixed Size 1220844 bytes Variable Size 176164628 bytes Database Buffers 427819008 bytes Redo Buffers 2969600 bytes ORA-00205: error in identifying control file, check alert log for more info : (
切root账户查看共享内存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 >ipcs -map ----------------------------------- ------ Message Queues PIDs -------- msqid owner lspid lrpid ------ Shared Memory Creator/Last-op PIDs -------- shmid owner cpid lpid 491520 oracle 27638 29393 524289 oracle 27638 29393 557058 oracle 27638 29393 589827 oracle 27638 29393 622596 oracle 27638 29393 1081349 oracle 29270 29354 1114118 oracle 29270 29354 1146887 oracle 29270 29354 1179656 oracle 29270 29354 1212425 oracle 29270 29354 >ipcs -s ------ Semaphore Arrays -------- key semid owner perms nsems 0xcf39bf04 491520 oracle 660 154 0xf8e315b0 884737 oracle 660 154 ** 清楚共享内存段 > ipcrm –s 491520 -----------------------------------------------------------
切换回oralce账户
1 2 3 4 5 6 7 8 9 10 11 SQL> conn / as sysdba Connected to an idle instance. SQL> startup mount ORACLE instance started. Total System Global Area 1720328192 bytes Fixed Size 2214056 bytes Variable Size 1006634840 bytes Database Buffers 704643072 bytes Redo Buffers 6836224 bytes Database mounted.
挂载成功
5). 解锁 已锁定用户 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 SQL> alter user system account unlock; alter user system account unlock * ERROR at line 1: ORA-01109: database not open SQL> alter database open; Database altered. SQL> alter user system account unlock; User altered. 改密码: SQL> ALTER USER system IDENTIFIED BY system;