Linux静默安装Oracle

    xiaoxiao2021-03-25  153

    1、准备oracle 安装包 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip 2、检查本机依赖包,没找到的用 yum install ****** 命令安装 rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel 3、创建所需的操作系统组和用户 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle 说明: -g:指定用户所属的起始群组。 -G:指定用户所属的附加群组。 设置oracle用户密码 passwd oracle 密码:oracle123 4、修改内核参数 vi /etc/sysctl.conf 在后面追加下面配置 #Oracle kernel.sem = 250 32000 100 128 kernel.shmmax = 2147483648(这里配置物理内存的一半,单位是字节。比如物理内存是16G,这个值就是8Gx1024x1024x1024=1073741824) kernel.shmmni = 4096 kernel.shmall = 2097152(这里配置物理内存的四分之一,单位是k。比如物理内存是16G,这个值就是4G*1024*1024=4194304) fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 8388608 net.core.wmem_default = 4194304 net.core.wmem_max = 4194304 fs.aio-max-nr = 1048576 保存后执行 /sbin/sysctl -p 命令,使修改生效。 我的配置: #Oracle kernel.sem = 250 32000 100 128 kernel.shmmax = 4294967296 kernel.shmmni = 4096 kernel.shmall = 2097152 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 8388608 net.core.wmem_default = 4194304 net.core.wmem_max = 4194304 fs.aio-max-nr = 1048576 5、修改用户限制 vi /etc/security/limits.conf 在后面追加下面配置 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 vi /etc/pam.d/login 在后面追加下面配置 session required /lib/security/pam_limits.so session required pam_limits.so vi /etc/profile 在配置文件结尾处(unset i 和 unset -f pathmunge 之前)追加下面配置 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 命令,使修改生效。 6、创建安装目录,并修改目录所有者 mkdir -p /data/oracle chown -R oracle:oinstall /data/oracle chmod -R 775 /data/oracle 7、创建/etc/oraInst.loc文件 vi /etc/oraInst.loc 在里面写入下面配置 nventory_loc=/data/oracle/oraInventory inst_group=oinstall 保存后修改文件权限 chown oracle:oinstall /etc/oraInst.loc chmod 664 /etc/oraInst.loc 8、设置oracle环境变量 用oracle用户登录 su - oracle vi ~/.bash_profile 在后面追加下面配置 export ORACLE_BASE=/data/oracle export ORACLE_SID=orcl(这里是用户自己定义的数据库名称,后面就不能再改了) 保存后执行 source /home/oracle/.bash_profile 命令,使修改生效。 执行 env 命令,检查环境变量。 9、把前面准备的数据库安装文件移动到 /home/oracle/ 10、解压oracle安装文件 unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip 解压缩后的安装文件在 /home/oracle/database 目录 11、复制响应文件模板 创建 /home/oracle/ 目录下的 etc 目录 mkdir etc 复制响应文件 cp /home/oracle/database/response/* /home/oracle/etc/ 设置响应文件权限 su - root chmod 700 /home/oracle/etc/*.rsp 12、静默安装Oracle软件 12.1 登陆 oracle 用户 su - oracle  12.2 vi /home/oracle/etc/db_install.rsp 修改安装Oracle软件的响应文件,这个环节其实就是图形化安装中的各种选项和“下一步”,不过静默安装要在配置文件里提前配置好。具体配置如下: oracle.install.option=INSTALL_DB_SWONLY // 安装类型 ORACLE_HOSTNAME=oracle // 主机名称(hostname查询,这里要注意,主机名要在 /etc/hosts 文件中配置好ip对应关系,否则安装会报错) UNIX_GROUP_NAME=oinstall // 安装组 INVENTORY_LOCATION=/data/oracle/oraInventory //INVENTORY目录(不填就是默认值) SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言 ORACLE_HOME=/data/oracle/product/11.2.0/db_1 // oracle_home ORACLE_BASE=/data/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=oinstall // oper用户组 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型 oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName(这里要和第8步配置的sid一致) oracle.install.db.config.starterdb.SID=orcl //SID(这里要和第8步配置的sid一致) oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M) oracle.install.db.config.starterdb.password.ALL=123456//设定所有数据库用户使用同一个密码 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false) DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对) system/123456 12.3 /home/oracle/database/ 目录开始静默安装。 ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp (我曾经在安装时一直报错,SEVERE: [FATAL] [INS-13013] 目标环境不满足一些必需要求。后来在请求参数里增加了 -ignorePrereq 后安装成功了 ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp) 【补充一个异常:安装时如果提示swap空间为0M,需要做如下配置: dd if=/dev/zero of=/home/swapfile bs=1M count=4096 mkswap /home/swapfile swapon /home/swapfile vi /etc/fstab /home/swapfile swap swap defaults 0 0 】 安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。 安装日志信息在 /data/oracle/oraInventory/logs/ 目录下。 installActions2016-07-14_10-49-36AM.log安装过程 oraInstall2016-07-14_10-49-36AM.err错误日志 oraInstall2016-07-14_10-49-36AM.out输出日志 12.4 当 oraInstall2016-07-14_10-49-36AM.out 文件出现下面信息,就表示安装完成了 /data/oracle/product/11.2.0/db_1/root.sh 要执行配置脚本, 请执行以下操作: 1. 打开一个终端窗口 2. 以 "root" 身份登录 3. 运行脚本 4. 返回此窗口并按 "Enter" 键继续 Successfully Setup Software. 12.5 执行 su - root 命令,用 root 用户登录 /data/oracle/product/11.2.0/db_1/root.sh 12.6 执行 su - oracle 命令,用 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 命令,使修改生效。 执行 env 命令,检查环境变量。 13、到这里,oracle 11g 的数据库实例就算是装好了,接下来配置数据库实例的基本参数文件 cd $ORACLE_HOME/dbs (实际这个目录是/data/oracle/product/11.2.0/db_1/dbs) 这时目录下有 init.ora 文件,执行下面命令,会创建一个新的基本参数配置文件 cat init.ora | grep -V ^# | grep -V ^$ | > init$ORACLE_SID.ora 新创建的文件名是 init(sid).ora,比如我在第8步配置的是orcl,那么这个文件名就是 initorcl.ora 这个新创建的文件是个空文件,需要手动把 init.ora 里面的内容复制过来,把内容里面的 <ORACLE_BASE> 全部改成绝对地址 /data/oracle db_name='【sid】'(这里的sid要和第8步配置的sid一致)  audit_file_dest='/data/oracle/admin/【sid】/adump'(这里的sid要和第8步配置的sid一致)  并用 oracle 用户手动创建  /data/oracle/admin/【sid】/adump(这里的sid要和第8步配置的sid一致)  /data/oracle/flash_recovery_area /data/oracle/oradata 14、执行命令 vi /home/oracle/script.sql 编辑sql脚本文件,内容如下: CREATE DATABASE orcl(这里要和第8步配置的sid一致) USER SYS IDENTIFIED BY sys  USER SYSTEM IDENTIFIED BY system  LOGFILE  GROUP 1 ('/data/oracle/oradata/redo01.log') SIZE 1024M,  GROUP 2 ('/data/oracle/oradata/redo02.log') size 1024m,  GROUP 3 ('/data/oracle/oradata/redo03.log') size 1024m,  GROUP 4 ('/data/oracle/oradata/redo04.log') size 1024m,  GROUP 5 ('/data/oracle/oradata/redo05.log') size 1024m MAXLOGFILES 5  MAXLOGMEMBERS 5  MAXLOGHISTORY 200  MAXDATAFILES 10000 MAXINSTANCES 1  CHARACTER SET ZHS16GBK  NATIONAL CHARACTER SET AL16UTF16  datafile '/usr/oracle/oradata/system01.dbf' size 2048M  REUSE EXTENT MANAGEMENT LOCAL sysaux datafile '/usr/oracle/oradata/sysaux01.dbf' size 2048M REUSE default temporary tablespace temp  tempfile '/usr/oracle/oradata/temp01.dbf' size 2048M REUSE undo tablespace UNDOTBS1  datafile '/usr/oracle/oradata/undotbs01.dbf' size 4096M  REUSE AUTOEXTEND off default tablespace DATA datafile '/usr/oracle/oradata/data01.dbf' size 8192M  REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 15、执行命令 sqlplus / as sysdba 登陆 oracle 数据库 登陆成功后执行 startup nomount; 启动数据库,注意必须包含有分号,否则oracle不执行。 16、@/home/oracle/script.sql; 执行第14步配置的脚本 如果这里报错: ERROR at line 1: ORA-01501: CREATE DATABASE failed ORA-00200: control file could not be created ORA-00202: control file: '/usr/oracle/product/11.2.0/db_1/dbs/ora_control1' ORA-27038: created file already exists Additional information: 1 就说明此脚本之前执行过,但是失败了。删除掉 /usr/oracle/product/11.2.0/db_1/dbs/ 目录下的 ora_control1 和 ora_control2 再重新执行脚本即可。 这个脚本执行过程很长,而且没有任何提示,等显示 Database created. 就成功了。 17、创建数据字典和pl/sql包 @/data/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql; @/data/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql; @/data/oracle/product/11.2.0/db_1/rdbms/admin/utlrp.sql; conn system/system; @/data/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql; 前两个脚本执行过程很长。 创建完成后先执行 exit 命令退出,然后再执行 sqlplus / as sysdba 登陆数据库; 然后执行 shutdown immediate; 命令关闭数据库; 再执行 startup; 启动oracle数据库。先退出再登陆是因为conn system/system之后,当前用户就变成了system,而system没有关闭数据库权限。 18、配置监听文件 18.1、执行 vim /data/oracle/product/11.2.0/db_1/network/admin/listener.ora 命令,插入内容如下: # listener.ora Network Configuration File: /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 【计算机名】)(PORT = 1521))(这里的HOST要填本机的计算机名)    )  ) ADR_BASE_LISTENER = /app/oracle 18.2、执行 vi /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 命令,插入内容如下: # tnsnames.ora Network Configuration File: /app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. QXT =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 【计算机名】)(PORT = 1521))(这里的HOST要填本机的计算机名)    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)(这里要填写第8步定义的sid)    )  ) # listener.ora Network Configuration File: /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 【计算机名】)(PORT = 1521))(这里的HOST要填本机的计算机名)    )  ) ADR_BASE_LISTENER = /app/oracle 19、启动监听  切换帐户 # su - Oracle 执行命令 lsnrctl start 启动监听 提示 The command completed successfully 执行成功 20、创建用户 执行命令 sqlplus / as sysdba 登陆 oracle 数据库 执行下面语句,创建用户 create user zs_user identified by 123456;  grant connect, resource to zs_user; grant create session to zs_user; 执行下面语句,创建表空间 create tablespace zs_user_DATA datafile '/data/oracle/oradata/zs_user001.dbf' size 16G; 执行下面语句,指定表空间 alter user zs_user default tablespace zs_user_DATA temporary tablespace TEMP;

    至此全部完成,用navicat链接一下,正常。最后提醒一下自己,不要忘了开放防火墙的1521端口。 

    另附:

    远程使用plsql工具登录sys用户,提示ORA-01031 insufficient privileges。

    问题解决方法

    1.首先使用本地系统用户启动数据库,使用名称查看配置参数

    [sql]  view plain  copy show parameter password  

    查看参数状态EXCLUSIVE则为正常状态,如果不是,则修改pfile或者是spfile的参数

    [sql]  view plain  copy alter system set remote_login_passwordfile='EXCLUSIVE'   2.查询密码文件视图

    [sql]  view plain  copy select * from v$pwfile_users  

    如果没有结果集返回,则说明密码文件有问题,重新配置密码文件并且给用户赋予sysdba权限。

    切换到$ORACLE_HOME/dbs下。可能密码文件不存在,如果存在备份密码文件,然后使用

    [sql]  view plain  copy OS命令:   orapwd file=orapwdev password=oracle;  

    命令重新新建密码文件,注意opapwdev中的dev为实例名。

    这时候问题应该解决了。重新使用以下SQL查询,应该显示一条SYS记录了!

    [sql]  view plain  copy select * from v$pwfile_users  

    转自: http://blog.csdn.net/sunansheng/article/details/49999353

    转载请注明原文地址: https://ju.6miu.com/read-3882.html

    最新回复(0)