在linux安装oracle 12c数据库(静默安装) #每一步都验证过,可靠度99% ...

罪恶克星  论坛元老 | 2024-9-11 20:32:26 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1011|帖子 1011|积分 3033

# 百分百可靠!
下载oracle 12c安装包:
https://pan.baidu.com/s/1T_XY97PnlnYrp4vXo0WivA
提取码:dgj8

下载好oracle 12c的安装包(database12c.tar.gz)后,预备好linux系统镜像包(例如:CentOS-7-x86_64-DVD-2009.iso)

挂载iso镜像包,为lib依靠包的安装做预备:
mount -o loop /usr/local/CentOS-7-x86_64-DVD-2009.iso /mnt
将xxx-Base.repo配置文件移走:mv /etc/yum.repos.d/CentOS-Base.repo /root
编辑xxx-Media.repo配置文件:vim /etc/yum.repos.d/CentOS-Media.repo
增加一行仓库地址:file:///mnt/,并将enabled修改为1启用,例如:


防止安装过程中防火墙干扰,必要先关闭防火墙:systemctl stop firewalld
防止限定太严酷,关闭selinux:
vim /etc/selinux/config     将 SELINUX 设置成:disabled

1、修改Linux内核参数:
执行 vim /etc/sysctl.conf ,在sysctl.conf文件末尾添加如下参数,然后执行 sysctl -p 下令,使得配置的内核参数生效
  1. fs.aio-max-nr=1048576
  2. fs.file-max=6815744
  3. kernel.sem=250 32000 100 128
  4. kernel.shmall=2097152
  5. kernel.shmmax=2147483648
  6. kernel.shmmni=4096
  7. net.core.rmem_default=1048576
  8. net.core.rmem_max=4194304
  9. net.core.wmem_default=262144
  10. net.core.wmem_max=1048576
  11. net.ipv4.ip_local_port_range=9000 65500
复制代码
#kernel.shmall 和 kernel.shmmax 参数设置说明:
1.  kernel.shmmax :
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的 SGA , 设置的过低可能会导致必要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及 ServerProcess 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的低落 ( 在启动的时候必要去创建多个虚拟地址段,在历程创建的时候要让历程对多个段举行“识别”,会有一些影响 ) ,但是其他时候都不会有影响。
官方建议值:
32 位 linux 系统:可取最大值为 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建议值为多于内存的一半,所以如果是 32 为系统,一般可取值为 4294967295 。 32 位系统对 SGA 大小有限定,所以 SGA 肯定可以包含在单个共享内存段中。
64 位 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。  
内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471
2.  kernel.shmall :
该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
一个共享内存段的最大大小是 16G ,那么必要共享内存页数是 16GB/4KB==4194304 (页),
当内存为 12G 时, kernel.shmall = 3145728
当内存为 16G 时, kernel.shmall = 4194304
当内次为 32G 时, kernel.shmall = 8388608
当内存为 64G 时, kernel.shmall = 16777216
当内存为 128G 时, kernel.shmall = 33554432
 
2、安装Oracle12c的依靠包:
  1. yum install binutils gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat libnsl.x86_64 -y
复制代码
缺少的lib依靠包可以从该网站下载:https://centos.pkgs.org/

3、创建Oracle用户和用户组
  1. groupadd oinstall
  2. groupadd dba
  3. useradd -g oinstall -G dba oracle
  4. echo "oracle" | passwd oracle --stdin
复制代码

4、修改oracle用户权限文件
执行 vim /etc/security/limits.conf ,在文件中添加以下内容
  1. oracle  soft    nofile  65536
  2. oracle  hard    nofile  65536
  3. oracle  soft    nproc   2047
  4. oracle  hard    nproc   16384
  5. oracle  soft    stack   10240
复制代码
执行 vim /etc/pam.d/login ,在文件中添加以下内容
  1. session required        /lib64/security/pam_limits.so
  2. session required        pam_limits.so
复制代码
执行 vim /etc/profile,在文件中添加以下内容,然后执行 source /etc/profile 使得修改生效
  1. #oracle config
  2. if [ $USER = "oracle" ]; then
  3.   if [ $SHELL = "/bin/ksh" ]; then
  4.       ulimit -p 16384
  5.       ulimit -n 65536
  6.   else
  7.       ulimit -u 16384 -n 65536
  8.   fi
  9. fi
复制代码

5、创建安装目录和文件权限
  1. mkdir -p /opt/database/oracle/product/12.2.0
  2. mkdir /opt/database/oracle/oradata
  3. mkdir /opt/database/oracle/inventory
  4. mkdir /opt/database/oracle/fast_recovery_area
  5. chown -R oracle:oinstall /opt/database/oracle/
  6. chmod -R 755 /opt/database/oracle/
复制代码

6、配置Oracle环境变量
执行 vim /home/oracle/.bash_profile ,在文件中添加如下内容,然后执行 source /home/oracle/.bash_profile ,使得环境变量生效
  1. umask 022
  2. ORACLE_BASE=/opt/database/oracle
  3. ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
  4. ORACLE_SID=orcl
  5. PATH=$PATH:$ORACLE_HOME/bin
  6. LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/12.2.0/lib:$LD_LIBRARY_PATH
  7. NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
  8. LANG=zh_CN.UTF-8
  9. export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH NLS_LANG LANG
  10. stty erase ^h
复制代码

7、上传oracle12c的二进制安装包并解压
这里将 database12c.tar.gz 上传到/usr/local文件夹下,然后执行:
tar -zxvf database12c.tar.gz
来解压
然后将 response 文件夹整个复制到 /home/oracle ,并赋权
  1. cp  -R  /usr/local/database/response   /home/oracle/
  2. chmod  -R  777  /home/oracle/response
复制代码

8、切换到 /home/oracle/response 目录,并修改 db_install.rsp 文件的内容(有的参数修改值,没有的的参数新增即可)
  1. cd /home/oracle/response
  2. vim db_install.rsp
  3. oracle.install.option=INSTALL_DB_SWONLY
  4. ORACLE_HOSTNAME=localhost.localdomain  
  5. UNIX_GROUP_NAME=oinstall
  6. INVENTORY_LOCATION=/opt/database/oracle/inventory
  7. SELECTED_LANGUAGES=en,zh_CN
  8. ORACLE_HOME=/opt/database/oracle/product/12.2.0/dbhome_1
  9. ORACLE_BASE=/opt/database/oracle
  10. oracle.install.db.InstallEdition=EE
  11. oracle.install.db.OSDBA_GROUP=dba
  12. oracle.install.db.OSOPER_GROUP=dba
  13. oracle.install.db.OSBACKUPDBA_GROUP=dba
  14. oracle.install.db.OSDGDBA_GROUP=dba
  15. oracle.install.db.OSKMDBA_GROUP=dba
  16. oracle.install.db.OSRACDBA_GROUP=dba
  17. oracle.install.db.config.starterdb.characterSet=AL32UTF8
  18. DECLINE_SECURITY_UPDATES=true
复制代码

9、先切换到 oracle 用户下,再执行安装数据库步伐
  1. su - oracle
  2. source /home/oracle/.bash_profile
  3. cd /usr/local/database/
  4. ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
复制代码
退回到 root 用户下,执行:
  1. exit
  2. sh /opt/database/oracle/inventory/orainstRoot.sh
  3. sh /opt/database/oracle/product/12.2.0/dbhome_1/root.sh
复制代码
#如看到:The execution of the script is complete ,说明 orainstRoot.sh 执行乐成了,这里是在调整用户组和操纵权限;root.sh的执行结果可以查看控制提示的log日志文件。

10、配置监听
切换到 oracle 用户,加载 .bash_profile 配置文件,并执行 netca下令:
  1. su - oracle
  2. source /home/oracle/.bash_profile
  3. cd /home/oracle/response
  4. netca /silent /responseFile /home/oracle/response/netca.rsp
复制代码
然后执行:lsnrctl reload ,再执行 netstat -tunlp | grep 1521,查看监听的端标语是否启动

11、在文件 sqlnet.ora  中参加以下代码
执行:vim $ORACLE_HOME/network/admin/sqlnet.ora
  1. SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
  2. SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
复制代码

12、创建数据库
执行 vim /home/oracle/response/dbca.rsp 下令编辑文件
下面两种配置方式,只能二选一!不能两种都配置。
#注意:下面的参数选项一个都不能多一个都不能少!
第一种配置:
  1. responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
  2. gdbName=orcl
  3. sid=orcl
  4. databaseConfigType=SI
  5. createAsContainerDatabase=false
  6. templateName=/opt/database/oracle/product/12.2.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
  7. emExpressPort=5500
  8. omsPort=0
  9. characterSet=AL32UTF8
  10. listeners=LISTENER
  11. initParams=sga_target=1790MB
  12. memoryPercentage=40
  13. automaticMemoryManagement=false
  14. totalMemory=800
复制代码
第二种配置(天生pdb数据库实例):
  1. responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
  2. gdbName=orcl
  3. sid=orcl
  4. databaseConfigType=SI
  5. createAsContainerDatabase=true
  6. numberOfPDBs=1
  7. pdbName=orclpdb
  8. templateName=/opt/database/oracle/product/12.2.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
  9. emExpressPort=5500
  10. omsPort=0
  11. characterSet=AL32UTF8
  12. listeners=LISTENER
  13. memoryPercentage=40
  14. automaticMemoryManagement=false
  15. totalMemory=0
复制代码

然后执行如下下令创建数据库实例,并且给 SYS、SYSTEM 两个用户设置暗码
  1. dbca -silent -createDatabase  -responseFile  /home/oracle/response/dbca.rsp
复制代码

数据库安装完成!

#配置系统环境
登录数据库,数据库用户暗码有用期改成无穷期,修改oracle数据库线程数,并保存修改,然后重启数据库
  1. su - oracle
  2. sqlplus / as sysdba
  3. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;
  4. show parameter processes
  5. alter system set processes = 3000 scope = spfile;
  6. create pfile from spfile;
  7. shutdown abort
  8. startup
复制代码

#异常题目:ORA-00821: Specified value of sga_target *** is too small, needs to be at least ***
解决办法:
1、执行  create pfile from spfile  , 根据 spfile 文件参数天生 pfile 文件
2、找到天生的 pfile 文件,一般名称为 init [实例名].ora,修改 sga_target 参数值为必要的值
3、执行  create spfile from pfile  ,将修改之后的参数值回写到 spfile 文件
4、启动数据库,执行:startup

#异常题目:Oracle ORA-01017: invalid username/password;logon denied
解决办法:
1、执行 alter user system account unlock; 给用户解锁
2、执行  ALTER USER system IDENTIFIED BY "新暗码"; 修改用户暗码

#关闭远程以dba账号登录
alter system set remote_login_passwordfile=none scope=spfile sid='*';

#pdb数据库实例操纵
ALTER PLUGGABLE DATABASE orclpdb  OPEN;  //启动指定的pdb数据库实例
ALTER SESSION SET CONTAINER=orclpdb; //连接到指定的pdb实例
alter pluggable database all open; //启动全部pdb数据库实例

#设置重启服务器后自启动数据库

切换到 oracle 用户,然后运行: vim /etc/oratab 
找到文件中的  XXX:/XXX/.../dbhome_1:N  ,将最后的 N 改为Y

切换为 root 用户,然后运行:vim /etc/rc.d/rc.local ,在文件末尾添加:
  1. su oracle -lc "/XXX/.../dbhome_1/bin/lsnrctl start"
  2. su oracle -lc /XXX/.../dbhome_1/bin/dbstart
复制代码
#查看 dbstart 文件的 ORACLE_HOME_LISTNER 参数值,是否为 $ORACLE_HOME,如果是 $v,将它改为: $ORACLE_HOME 
#如果是pdb数据库,还必要设置开机随cdb启动:
alter pluggable database orcl save state;

给该文件添加可执行权限:chmod +x /etc/rc.d/rc.local
重启服务器后,通过:ps -ef | grep ora_ ,可以验证oracle历程是否启动。

#修改端标语
1、修改 listener.ora 文件中的端标语和 ip 地址,并添加实例监听
  1. LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 7777)) )
  2. SID_LIST_LISTENER=
  3.     (SID_LIST =
  4.         (SID_DESC =
  5.             (GLOBAL_DBNAME = ORCL)
  6.             (ORACLE_HOME = /opt/database/oracle/product/12.2.0/dbhome_1)
  7.             (SID_NAME = ORCL)
  8.         )
  9.     )
复制代码
2、修改 tnsnames.ora 中的端标语和 ip 地址
  1. ORCL =
  2.     (DESCRIPTION =
  3.         (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 7777))
  4.         (CONNECT_DATA =
  5.             (SERVER = DEDICATED)
  6.             (SERVICE_NAME = ORCL)
  7.         )
  8.      )
复制代码
3、修改监听端口
   
  1. alter system set local_listener="(address = (protocol = tcp)(host = xxx.xxx.xxx.xxx)(port = 7777))";
复制代码
4、重启监听服务
    lsnrctl reload
   #netstat -an|grep 9999  查看端标语是否启动
5、开启防火墙、启用端标语、重启防火墙   
  1. systemctl start firewalld
  2.    firewall-cmd --zone=public --add-port=7777/tcp --permanent
  3.    firewall-cmd --reload
复制代码
   # 如果是 iptables 防火墙,执行:iptables -I INPUT -p tcp --dport 7777 -j ACCEPT ,开启端口启用

#初始化表空间
  1. #查看表空间使用率
  2. SELECT Upper(F.TABLESPACE_NAME)         "表空间名",
  3.        D.TOT_GROOTTE_MB                 "表空间大小(M)",
  4.        D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
  5.        To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
  6.        || '%'                           "使用比",
  7.        F.TOTAL_BYTES                    "空闲空间(M)",
  8.        F.MAX_BYTES                      "最大块(M)"
  9. FROM   (SELECT TABLESPACE_NAME,
  10.                Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
  11.                Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
  12.         FROM   SYS.DBA_FREE_SPACE
  13.         GROUP  BY TABLESPACE_NAME) F,
  14.        (SELECT DD.TABLESPACE_NAME,
  15.                Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
  16.         FROM   SYS.DBA_DATA_FILES DD
  17.         GROUP  BY DD.TABLESPACE_NAME) D
  18. WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME
  19. ORDER  BY "表空间名" desc
  20. #查看已存在表空间
  21. select file_name from dba_data_files
  22. #增加所需空间大小
  23. alter database datafile '\oracle\oradata\xxxx.dbf' resize 4000m
  24. #设置空间自动扩展
  25. alter database datafile '\oracle\oradata\xxx.dbf' autoextend on next 100m maxsize 10000m
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表