Oracle数据库安装
准备工作
在/etc/hosts文件中增加主机名,配置host文件
vim /etc/hosts
192.168.233.101 hadoop
安装步骤
安装依赖包
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686libstdc++-devel make sysstat unixODBC unixODBC-devel
添加oracle用户和用户组
创建oinstall组和dba组,把oracle用户加入到用户组,并设置oracle登录密码
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
修改内核参数配置文件
vim /etc/sysctl.conf
# 在文件底部添加以下的内容
fs.file-max= 6815744
fs.aio-max-nr=1048576
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
kernel.sem= 250 32000 100 128
# 执行命令sysctl使其自检并生效
sysctl -p
修改用户限制文件
1 修改配置文件
vim /etc/security/limits.conf
# 在文件底部添加以下的内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2修改用户关联文件
vim /etc/pam.d/login
# 在文件底部添加以下的内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
3修改系统环境参数
vim /etc/profile
# 在文件底部添加以下的内容
if [ $USER = "oracle" ]; then
if [$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
# 刷新配置
source /etc/profile
创建安装目录和设置目录权限
mkdir /usr/local/oracle # oracle是数据库系统安装目录,
mkdir /usr/local/oradata # oradata是数据库数据安装目录,
mkdir /usr/local/oradata_back # oradata_back是数据备份目录,
mkdir /usr/local/oraInventory # oraInventory是清单目录
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
配置oracle用户环境变量
vim /home/oracle/.bash_profile
# 在文件底部追加以下内容
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
# 保存退出,刷新配置
source .bash_profile
编辑静默安装响应文件
切换到 oracle用户
su - oracle
复制一份模板
cp -R /home/database/response/ /usr/local/oracle
该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下
修改安装所需的所有响应文件的所属组及权限
cd /usr/local/oracle/response
chown oracle:oinstall /usr/local/oracle/response/*.rsp
chmod 755 /usr/local/oracle/response/*.rsp
配置db_install.rsp文件
vim /usr/local/oracle/response/db_install.rsp
# 找到对应属性并修改
oracle.install.option=INSTALL_DB_SWONLY #安装类型,只装数据库软件
ORACLE_HOSTNAME=nginx #主机名称(命令hostname查询)
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/usr/local/oraInventory #INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1 # oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle
ORACLE_BASE=/usr/local/oracle # oracle_base *注意修改
oracle.install.db.InstallEdition=EE # oracle版本
oracle.install.db.isCustomInstall=false #自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba #dba用户组
oracle.install.db.OPER_GROUP=dba #oper用户组(不明白)
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
oracle.install.db.config.starterdb.SID=orcl #SID(**此处注意与环境变量内配置SID一致)
oracle.install.db.config.starterdb.memoryLimit=8920 #自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle #设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false #(手动写了false)
oracle.install.db.config.starterdb.password.SYS=1995
oracle.install.db.config.starterdb.password.SYSTEM=1995
DECLINE_SECURITY_UPDATES=true # **注意此参数 设定一定要为true
根据响应文件安装oracle
cd /home/database/
./runInstaller -silent -responseFile /usr/local/oracle/response/db_install.rsp -ignorePrereq
参数说明:
/home/database 是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。
在root账号登录打开新窗口内执行以下提示的脚本
/usr/local/oraInventory/orainstRoot.sh
/usr/local/oracle/product/11.2.0/db_1/root.sh
oracle用户下编辑静默响应文件.把dbca.rsp改名为dbca_数据库名.rsp
cd /usr/local/oracle/response
mv dbca.rsp dbca_orcl.rsp
静默配置监听
netca /silent /responsefile /usr/local/oracle/response/netca.rsp
# 注意netca.rsp文件的需要指定绝对路径
查看生成监听文件
ll $ORACLE_HOME/network/admin/*.ora
查看服务端口,如果监控程序没启动成功的情况下,执行下面命令手动启动
lsnrctl start dbstart
静默安装数据库(同时也建立一个对应的实例)
修改/usr/local/oracle/response/dbca_orcl.rsp
vim /usr/local/oracle/response/dbca_orcl.rsp
# 设置如下:
GDBNAME="orcl" #78行 全局数据库的名字=SID+主机域名
SID="orcl" #149行 SID对应的实例名字
SYSPASSWORD="1995" #190 SYS管理员密码
SYSTEMPASSWORE="1995" #200行//SYSTEM管理员密码
DATAFILEDESTINATION=/usr/local/oradata/ #357行 数据文件存放目录
RECOVERYAREADESTINATION=/usr/local/oradata_back #367行 恢复数据存放目录
CHARACTERSET="AL32UTF8" #415行 字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚
TOTALMEMORY= "5120" #540行 oracle内存5120MB,建议为物理内存70%~85%
静默安装数据库
dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp
查看安装日志
cat /usr/local/oracle/cfgtoollogs/dbca/orcl/orcl.log
如果日志里出现 未找到包含数据文件信息的文件 “/usr/local/oradata/Seed_Database.dfb”。请指定有效文件。
则需要找到Seed_Database.dfb文件复制到/usr/local/oradata/Seed_Database.dfb目录
find / -name Seed_Database.dfb
#找到文件然后复制过去
cp /home/oracle/database/stage/Components/oracle.rdbms.install.seeddb/11.2.0.1.0/1/DataFiles/Expanded/filegroup1/Seed_Database.dfb /usr/local/oradata/Seed_Database.dfb
建库后实例查询
ps -ef | grep ora_ | grep -v grep
建库后监听检查
lsnrctl status
启动数据库,创建用户赋权
启动数据库
su - oracle lsnrctl start
重启启动数据库
export ORACLE_SID=orcl
sqlplus / as sysdba
shutdown immediate
startup
如果客户端工具连接出现ORA-01033,或者 ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 错误,进入sqlplus执行以下命令
sqlplus / as sysdba
shutdown abort
startup
创建新用户并授予权限
Oracle用户下启动 SQL plus 程序
su- oracle
sqlplus
创建新用户
SQL> CREATE USER USER01 IDENTIFIED BY Orcl1234;
User created.
Oracle迁移DM
环境准备
在进行迁移前,需要修改DM数据库中专门阵地ORACLE移植到DM的参数。
Compatibility 使用效果及建议
COMPATIBLE_MODE
是否兼容其他数据库模式。
0:不兼容,1: 兼容 SQL92 标准,2:部分兼容 ORACLE,3: 部分兼容 MS SQL SERVER,4:部分兼容 MYSQL, 5:兼容 DM6,6:部分兼容Teradata。
该参数默认为 0,所以当从 Oracle 移植到 DM 数据库时,修改值为2。
CALC_AS_DECIMAL 整数相除是否保留小数位,修改为 1
ORA_DATE_FMT
是否兼容 ORACLE 的 DATE 类型格式。0:不兼 容;1:兼容。
该参数默认为0。
注:仅当 COMPATIBLE_MODE 为 2 时有效
修改方式:
SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',2);
SP_SET_PARA_VALUE(2,'CALC_AS_DECIMAL',1);
或者
ALTER SYSTEM SET 'COMPATIBLE_MODE'=2 SPFILE;
ALTER SYSTEM SET 'CALC_AS_DECIMAL'=1 SPFILE;
修改完成后需要重启数据库后才能生效。
select para_name,para_value from v$dm_ini
where para_name = 'CALC_AS_DECIMAL' OR para_name = 'COMPATIBLE_MODE';
##查看修改后的参数值
在 INI 参数的 compatibility 部分,还有其它的一些参数,在涉及到之前,尽量保持默认值,在移植准备的环节,先只调整这个参数就可以了,其它参数,在移植过程中遇到了再具体分析。
新建工程
选择迁移方式
连接源数据库
连接目标数据库
选择源模式和目的模式
选择迁移对象
审阅迁移任务
完成迁移
DM(win)迁移DM(Linux)
选择迁移项目
连接源数据库
连接目标数据库
选择源模式和目的模式
选择迁移对象
审阅迁移任务
迁移完成
注:我未向源数据库中生成数据,所以迁移的内容,两台机器均有,导致部分内容(视图)无法迁移
MySQL数据库安装
创建安装用户
[root@lxr ~]# useradd mysql -s /sbin/nologin -M #<==创建mysql用户。
[root@lxr ~]# id mysql
下载、解压mysql软件包,并做好软链接mysql到/usr/local。
[root@lxr ~]# cd /opt
[root@lxr opt]# wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26- linux-glibc2.12-x86_64.tar.xz
[root@lxr opt]# tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
[root@lxr opt]# mv /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
[root@lxr opt]# ls -l /usr/local/mysql
创建MySQL数据目录、配置文件(/etc/my.cnf)并授权
#1)增加简易配置文件,后面在优化
cat>/etc/my.cnf<<'EOF'
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
port=3306
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
EOF
cat /etc/my.cnf
chown mysql.mysql /etc/my.cnf
#2)创建MySQL数据目录并授权
mkdir -p /data/3306/data
chown -R mysql.mysql /data
ls -ld /data
配置PATH环境变量,并初始化MySQL数据库
#1) 配置PATH环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
. /etc/profile
echo $PATH
#2)初始化MySQL数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/mysql --datadir=/data/3306/data
重点知识1 : 之前不同版本的初始化命令异同
/usr/local/mysql/scripts/mysql_install_db #5.7之前
/usr/local/mysql/bin/mysqld #5.7和8.0初始化
重点知识2: --initialize和--initialize-insecure区别
--initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
--initialize-insecure:管理员密码为空.
来自8.0官方翻译:
mysql_install_db程序已从MySQL发行版中删除。数据目录初始化应通过使用 --initialize 或--
initialize-insecure选项调用mysqld来执行。 此外,删除了mysql_install_db使用的mysqld选
项,并删除了控制mysql_install_db安装位置的选项。
#(5)初始化数据库的原理及结果说明
初始化数据库的实质就是创建基础的数据库系统的库文件等信息,例如:生成mysql库表等。
[root@db01 /opt]# ls /data/3306/data/ -l
total 176568
-rw-r----- 1 mysql mysql 56 Mar 7 16:40 auto.cnf
-rw------- 1 mysql mysql 1680 Mar 7 16:40 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 ca.pem
-rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 client-cert.pem
配置并启动MySQL数据库
1.设置MySQL启动脚本
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld #<==拷贝mysql启动脚本到启动路径。
systemctl enable mysqld #<==等价chkconfig mysqld on(c7把服务设置开机自启动命令)
2.启动MySQL数据库
systemctl start mysqld
3.检查MySQL数据库是否启动。
netstat -lntup|grep 330
4.查看MySQL数据库启动结果日志。
cat /data/3306/data/db01.err
2.2.3登录MySQL测试
执行登录命令如下:
mysql
MySQL迁移DM
创建迁移任务
连接源数据库
连接目标数据库
选定迁移内容和模式
审阅迁移任务
完成迁移