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
创建迁移任务
连接源数据库
连接目标数据库
选定迁移内容和模式
审阅迁移任务
完成迁移