数据库篇(Oracle)--- Linux系统非图形界面安装及数据库迁移

    安装依赖包

yum install binutils compat-libstdc++-33 elfutils elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm 
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

    创建所需的操作系统组和用户

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

    设置oracle用户密码

passwd oracle

    修改内核参数(在/etc/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数)

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

    修改后,使设置生效

/sbin/sysctl -p

    修改用户限制(在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数)
 

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

    在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

session required /lib/security/pam_limits.so
session required pam_limits.so

    在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
       ulimit -u 16384
       ulimit -n 65536
    else
       ulimit -u 16384 -n 65536
    fi
fi

    使设置生效

source /etc/profile

    创建安装目录(可根据情况,选择比较多空间的目录创建)

mkdir -p /home/app/
chown -R oracle:oinstall /home/app/
chmod -R 775 /home/app/

    创建/etc/oraInst.loc文件,内容如下

nventory_loc=/home/app/oracle/oraInventory
inst_group=oinstall

    更改文件的权限

chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

    设置oracle环境变量

su - oracle
vi ~/.bash_profile

    在最后加上以下内容

export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl

    注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH,LD_LIBRARY_PATH等)
    

    使设置生效

source /home/oracle/.bash_profile

    检查环境变量

env

    解压oracle安装文件

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

    链接:https://pan.baidu.com/s/10_V4xdIaomfLgvynqIDUVQ  提取码:0vwy 

    复制响应文件模板

mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/

    设置响应文件权限

su - root
chmod 700 /home/oracle/etc/*.rsp

    静默安装Oracle软件

su - oracle

    修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY  //29 行 安装类型
ORACLE_HOSTNAME=java-linux-test //37 行 主机名称
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/home/app/oracle/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/home/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/home/app/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本
oracle.install.db.isCustomInstall=true  //108行 自定义安装
oracle.install.db.DBA_GROUP=dba //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl  //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新

    进行静默安装Oracle软件

cd database
./runInstaller -silent -force -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp

    安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了

    查看安装日志信息了解安装进度

cd $ORACLE_BASE/oraInventory/logs
tail -100f installActions*.log

    出现类似如下提示表示安装完成

#-------------------------------------------------------------------
/home/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window 
2. Log in as "root" 
3. Run the scripts 
4. Return to this window and hit "Enter" key to continue
 
Successfully Setup Software.
#------------------------------------------------------------------- 

    使用root用户执行root.sh

su root
/home/app/oracle/product/11.2.0/db_1/root.sh

    增加oracle环境变量

su - oracle 
vi ~/.bash_profile

    在最后加上以下内容

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data

    使设置生效

source /home/oracle/.bash_profile

    静默配置网络

$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp

    静默安装数据库,修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp

GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
SID="orcl" //149行 SID
CHARACTERSET="ZHS16GBK" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码

    进行静默安装数据库

$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

    建库后实例检查

ps -ef | grep ora_ | grep -v grep | wc -l
ps -ef | grep ora_ | grep -v grep

    建库后监听检查

lsnrctl status

    如果出现以下错误

lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

    解决办法:在root用户下执行以下命令

su - root
setenforce 0

    修改oracle启动配置文件

su - oracle
vi /etc/oratab 
racl:/home/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”

    这样就可以通过dbstart 启动此实例,监听器

dbstart $ORACLE_HOME

    此时所有oracle的进程关闭,监听器也停止

dbshut $ORACLE_HOME

    再次查看监听器状态

lsnrctl status

    如果使用归档日志

sqlplus / as sysdba 
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
SQL> alter system archive log current; (手工归档测试) 

    默认安装的数据库用户检查

SQL> set lines 256 pages 500
SQL> select USER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users order by

数据库迁移

    数据库导出导入(exp/imp)

exp cwapp/cwapp@devel owner=cwapp file=/data/exp_devel.dmp            #参数分别为:用户名,密码,数据库,所属用户,导出地址
imp cwapp/cwapp@devel file=/data/exp_devel.dmp  ignore=y full=y       #参数分别位:用户名,密码,数据库,文件地址,若表存在则忽略,全表导入

    数据库自动备份脚本

#!/bin/sh

#备份时间
BACKUPTIME=$(date +%Y%m%d)

#备份至存放的文件夹
DMPDIR=/app/oracle/admin/orcl/dpdump

#备份文件的备注名
DMPNAMEDEMO=FMC-DEMO-$BACKUPTIME.dmp 
LOGNAMEDEMO=FMC-DEMO-$BACKUPTIME.log 
ZIPNAMEDEMO=FMC-DEMO-$BACKUPTIME.dmp.zip

#备份文件的备注名
DMPNAMEPRD=FMC-PRD-$BACKUPTIME.dmp 
LOGNAMEPRD=FMC-PRD-$BACKUPTIME.log
ZIPNAMEPRD=FMC-PRD-$BACKUPTIME.dmp.zip

#导出FMC_DEMO数据库
expdp FMC_DEMO/FMC_DEMO directory=DATA_PUMP_DIR schemas=FMC_DEMO dumpfile=$DMPNAMEDEMO logfile=$LOGNAMEDEMO

#导出FMC_PRD数据库
expdp FMC_PRD/FMC_PRD directory=DATA_PUMP_DIR schemas=FMC_PRD dumpfile=$DMPNAMEPRD logfile=$LOGNAMEPRD

#进入到备份的存放文件夹
cd $DMPDIR

#进行压缩
zip -9 $ZIPNAMEDEMO $DMPNAMEDEMO
zip -9 $ZIPNAMEPRD $DMPNAMEPRD

#进行删除
rm -rf $DMPDIR/$DMPNAMEDEMO
rm -rf $DMPDIR/$DMPNAMEPRD

 

 

 

 

 

你可能感兴趣的:(数据库篇(Oracle)--- Linux系统非图形界面安装及数据库迁移)