网上有很多类似的文章但是太杂乱,亲自操作之后整理到一起
目标
- 静默安装Oracle11.2.0.4
- 迁移生产数据到刚搭建的oracle
问题
- 数据迁移数据中文乱码
- 数据迁移注释中文乱码
一、安装oracle
1、下载软件包
11.2.0.4安装包
链接: pan.baidu.com/s/19xATxTgZ… 提取码: fee8
以下两个文件
p13390677_112040_Linux-x86-64_1of7
p13390677_112040_Linux-x86-64_2of7
2、解压
解压两个文件,解压出database文件夹
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
3、查看环境依赖环境
执行以下命令,查看是否已安装相关依赖。
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel
elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel
glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make
pdksh sysstat unixODBC unixODBC-devel | grep "not installed"
若没有某个依赖采用yum安装。例如:
yum install compat-libstdc++-33*
4、配置linux参数
vi /etc/sysctl.conf
注释掉kernel.shmmax与kernel.shmall,并追加以下内容
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.file-max = 6815744
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 = 1048586
fs.aio-max-nr = 1048576
vi /etc/security/limits.conf
追加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
5、创建用户、用户组和安装目录
1.创建oinstall和dba组和oracle用户
[root@ora11g ~]# groupadd oinstall
[root@ora11g ~]# groupadd dba
[root@ora11g ~]# useradd -g oinstall -G dba oracle
[root@ora11g ~]# passwd oracle
##之后会输入两次oracle密码,可以回车,不设置密码
2.创建安装目录并修改所属用户和组
[root@ora11g ~]# mkdir -p /u01/app/oracle
[root@ora11g ~]# chown -R oracle:oinstall /u01/app/
6、修改环境变量
1.切换到oracle用户。
[root@ora11g ~]# su - oracle
2.修改环境变量
[oracle@ora11g ~]$ vi .bash_profile
追加以下内容,安装目录
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=PATH:
ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
3.移动database文件 移动解压出来的database文件并修改权限等
[root@ora11g ~]# mv /home/database/ /u01/
[root@ora11g ~]# chown -R oracle:oinstall database/
[root@ora11g ~]# chmod -R 777 database/
7、==开始安装==
1.编辑响应文件db_install.rsp
[root@ora11g ~]# vi /u01/database/response/db_install.rsp
需要修改的配置有以下内容(参考大神说明 blog.csdn.net/jameshadoop…
oracle.install.option=INSTALL_DB_SWONLY #选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库
ORACLE_HOSTNAME=ora11g #指定操作系统主机名,通过hostname命令获得
UNIX_GROUP_NAME=oinstall #指定oracle inventory目录的所有者,通常会是oinstall或者dba
INVENTORY_LOCATION=/u01/app/oraInventory #指定产品清单oracle inventory目录的路径
SELECTED_LANGUAGES=en,zh_CN,zh_TW #指定数据库语言,可以选择多个,用逗号隔开
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 #设置ORALCE_HOME的路径
ORACLE_BASE=/u01/app/oracle # 设置ORALCE_BASE的路径
oracle.install.db.InstallEdition=EE #选择Oracle安装数据库软件的版本
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba #指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #选择数据库的用途,一般用途/事物处理,数据仓库
oracle.install.db.config.starterdb.globalDBName=ora11g #指定GlobalName
oracle.install.db.config.starterdb.SID=ora11g #指定SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK #选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
#通常中文选择的有ZHS16GBK简体中文库,根据公司规定自行选择
oracle.install.db.config.starterdb.password.ALL=123456 #设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。
DECLINE_SECURITY_UPDATES=true # False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG
# Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址
2.切换到oracle用户进入到/u01/database目录下执行安装命令
[oracle@ora11g ~]
./runInstaller -silent -ignorePrereq responseFile /u01/database/response/db_install.rsp
使用root用户使用tail -f 查看实时日志。
3.等到窗口出现以下命令时
出现类似如下提示表示安装完成:
/u01/app/oraInventory/orainstRoot.sh
/u01/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@ora11g ~]# /u01/app/oraInventory/orainstRoot.sh
[root@ora11g ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
4.静默安装监听
[oracle@ora11g ~]$ /u01/app/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /u01/database/response/netca.rsp
8、静默建库
1.编辑dbca.rsp
[root@ora11g ~]# vi /u01/database/response/dbca.rsp
修改配置如下
#以下内容不要修改
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
#以下内容必须设置
GDBNAME = "ora11g"
SID = "ora11g"
TEMPLATENAME = "General_Purpose.dbc"
#以下内容根据需要修改
CHARACTERSET = "ZHS16GBK"
2.使用oracle用户执行建库命令(注意执行监听的时候是 /silent /responseFile 而执行建库则是 -silent -responseFile)
[oracle@ora11g ~]$ /u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /u01/database/response/dbca.rsp
之后会提示输入sys和system的密码,我的都是123456,所有输入2次都是一样的。(我这里命令行会先删除界面的内容才可以输入,不知道是不是系统的原因还是别的导致的)
界面会提示安装进度
Copying database files
...
37% complete
Creating and starting Oracle instance
...
62% complete
Completing Database Creation
...
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
==到此安装oracle建库完成。==
参考链接
二、数据迁移
1、检查oracle字符集
分别差看导出和导入的服务器oracle字符集
-
SQL>select userenv(‘language’) from dual;。==若不一直可能导致数据中文乱码==
- 查看服务器变量
NLS_LANG。若不一致,set nls_lang=AMERICAN_AMERICA.ZHS16GBK。 ==若不一致可能导致注释中文乱码==
2、数据迁移
导出某个用户的数据
exp ##/##@## owner=ucf file=/data/oracle/data0718.dmp
导出的数据文件11G采用7z压缩到600M。安装:
yum install -y p7zip
导入数据
imp ###/###@### file=/home/oracle/data02.dmp ignore=y fromuser=ucf touser=um_tes