注释: 一个未开图形界面的Linux OS,如何安装oracle软件及数据库,如下是 2 大步骤 1、克隆软件 2、手动建库
一、克隆软件
1、基本配置
1.1)系统软件包安装 yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
1.2)用户创建 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle echo 123456 | passwd –stdin oracle
1.3)文件配置
1.3.1) 环境变量 vi ~oracle/.bash_profile export ORACLE_BASE=/data/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1 export ORACLE_SID=test # 最多 8 个字符 ; 操作系统和 oracle实例关联的纽带 ;ORACLE_HOME+ORACLE_SID==>hash==> 共享内存段 export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin # 将安装后的 oracle 命令追加到执行搜索路径 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 动态库的位置 export nls_lang=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK” #客户端字符集设置 # 加载配置 :oracle 用户注销重新登录 或 source .bash_profile
1.3.2) 主机 echo “10.240.1.7 Database-backup” >> /etc/hosts #避免报错 startup noumount 时报错 ORA-00000: normal, successful completion
1.3.3) 软件目录 mkdir -p /data/app/oracle/product/11.2.0.4/db_1 chown -R oracle:oinstall /data/app
1.3.4) 资源限制 1.3.4,1) vim /etc/sysctl.conf 添加到文件底端 kernel.shmall = 2097152 #Total amount of shared memory available(bytes or pages); 页的数量 ;2097152*4096/1024/1024/1024=8G; 如果内存大于 8G,必须修改此参数 kernel.shmmax = 2147483648 # 要>= 物理内存的一半 Maximum size of shared memory segment(bytes); 建议 >=sga_max_size(oracle 申请内存大小 ); # 单个程序内存段最大多少 ;4G 的话分为两段 mem_seg1 mem_seg2,影响效率 ; kernel.shmmni = 4096 # Maximum number of shared memory segments system-wide; 页的大小 ; kernel.sem =250 32000 100 128
SEMMSL SEMMNS SEMOPM SEMMNI SEMMSL Maximum number of semaphores per set; 每个信号对象集的最大信号对象数 SEMMNS Maximum number of semaphores system-wide; 系统范围内最大信号对象数 ;SEMMNS = SEMMSL*SEMMNI SEMOPM 每个信号对象支持的最大操作数 SEMMNI Maximum number of semaphore identifiers; 系统范围内最大信号对象集数 fs.file-max #系统中所允许的文件句柄最大数目 net.ipv4.ip_local_port_range # 应用程序可使用的 IPv4 端口范围 net.core.rmem_default #套接字接收缓冲区大小的缺省值 net.core.rmem_max #套接字接收缓冲区大小的最大值 net.core.wmem_default #套接字发送缓冲区大小的缺省值 net.core.wmem_max #套接字发送缓冲区大小的最大值
#注释:OS32bit,oracle 最多申请 1.7G; 应该装 64bitOS #加载参数 sysctl -p
1.3.4 ,2) /etc/security/limits.conf oracle 在 linux 上操作的limit [root@dba ~]# grep -v ‘^#’ /etc/security/limits.conf oracle soft nproc 2047 #oracle 在 linux 上打开 proc 数量 oracle hard nproc 16384 oracle soft nofile 1024 #oracle 在 linux 上打开 file 的数量 oracle hard nofile 65536 [root@dba ~]# grep ‘limit’ /etc/pam.d/system-auth session required pam_limits.so 1.3.4,3) 关闭防火墙、SELINUX iptables -F 更改 /etc/selinux/config 文件 –>SELINUX=disabled
2、克隆 ORACLE_HOME 2.1)将远程 ORACLE_HOME 完全复制到本地 #进入到本地 ORACLE_HOME 路径 su – oracle cd /data/app/oracle/product/11.2.0.4/ #将远程 ORACLE_HOME 完全复制到本地 scp -pr oracle@10.240.1.8:/data/app/oracle/product/11.2.0.4/db_1/ .
2.2)执行 clone.pl 克隆脚本更改参数配置(ORACLE_SID、ORACLE_HOME) $ cd /data/app/oracle/product/11.2.0.4/db_1/clone/bin $ ls
clone.pl prepare_clone.pl #注意每个参数后,等号后不能有空格,否则被识别成无效选项
$ perl clone.pl ORACLE_SID=test ORACLE_BASE=/data/app/oracle ORACLE_HOME=/data/app/oracle/product/11.2.0.4/db_1/ ORACLE_HOME_NAME=OraDb11g_home1 …….最后提示如下信息表示,克隆成功… The following configuration scripts need to be executed as the “root” user. /data/app/oracle/product/11.2.0.4/db_1/root.sh To execute the configuration scripts: 1. Open a terminal window 2. Log in as “root” 3. Run the scripts The cloning of OraDb11g_home1 was successful.
……………….
二、手动建库
1、配置参数文件 (测试环境简单参数,若有需求,可补充 )
[oracle@Database-backup ~]$ cd $ORACLE_HOME/dbs
[oracle@Database-backup dbs]$ pwd
/data/app/oracle/product/11.2.0.4/db_1/dbs
[oracle@Database-backup dbs]$
[oracle@Database-backup dbs]$ cat inittest.ora db_name=test
db_files = 80
db_file_multiblock_read_count = 8
log_checkpoint_interval = 10000
processes = 50
parallel_max_servers = 5
log_buffer = 32768
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
sga_max_size=300M
sga_target=300M
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=10.240.1.7)(Port=1521)))’ #避免启动数据库时报错(ORA-00119、ORA-00130 local_listener 配置无效) [oracle@Database-backup dbs]$
2、启动数据库到 nomount
#进入数据库
[oracle@Database-backup dbs]$sqlplus / as sysdba
#开启数据库到 nomount 状态 SQL> startup nomount
ORACLE instance started.
Total System Global Area 313159680 bytes
Fixed Size 2252824 bytes
Variable Size 104861672 bytes
Database Buffers 201326592 bytes
Redo Buffers 4718592 bytes
SQL>
3、创建数据库,到 open 状态 —>前提:mkdir -p /data/app/dbf/;chown -R oracle:oinstall /data/app/dbf/
SQL>CREATE DATABASE test USER SYS IDENTIFIED BY change_on_install USER SYSTEM IDENTIFIED BY manager LOGFILE GROUP 1 ( ‘/data/app/dbf/redo01.log’) SIZE 100M, GROUP 2 (‘/data/app/dbf/redo02.log’) SIZE 100 M, GROUP 3 (‘/data/app/dbf/redo03.log’) SIZE 100 M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 DATAFILE ‘/data/app/dbf/system01.dbf’ SIZE 325M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE ‘/data/app/dbf/sysaux01.dbf’ SIZE 325 M REUSE DEFAULT TABLESPACE users datafile ‘/data/app/dbf/users.dbf’ size 50m DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE ‘/data/app/dbf/temp01.dbf’ SIZE 20 M REUSE UNDO TABLESPACE undotbs DATAFILE ‘/data/app/dbf/undotbs01.dbf’ SIZE 200 M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Database created.
SQL>
4、确认数据库状态 SQL> select status from v$instance;
STATUS
————
OPEN
SQL>
5、 将 DBF 设置自动扩展,避免稍后执行脚本加载数据字典表/包/scott 用户 时空间不足 alter database datafile 1 autoextend on;
alter database datafile 2 autoextend on;
alter database datafile 3 autoextend on;
alter database datafile 4 autoextend on;
6、创建数据字典/包/scott 用户 数据字典视图 : @?/rdbms/admin/catalog.sql 系统包/存储过程 : @?/rdbms/admin/catproc.sql 用户 PROFILE 表 : @?/sqlplus/admin/pupbld.sql
以上已完成安装 oracle 软件及数据库.
问题整理和完善
1、***** sqlplus / as sysdba 提示未找到 libclntsh.so.11.1 文件 [oracle@Database-backup ~]$ sqlplus / as sysdba
sqlplus: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
[oracle@Database-backup ~]$cd $ORACLE_HOME/lib/ [oracle@Database-backup lib]$ ls libclntsh.so* libclntsh.so libclntsh.so.10.1 –>只有 10.1 cp -rp 连带属性完全复制一份,正常若有 libclntsh.so.11.1 文件可能是权限问题。
[oracle@Database-backup lib]$ cp -rp libclntsh.so.10.1 libclntsh.so.11.1
[oracle@Database-backup lib]$ sqlplus / as sysdba … 正常.
2、用于 sys 密码登录 orapwd file=orapwtest password=test
3、ORA-00904: “wm_concat”:invalid identifier
执行创建 WMSYS 用户脚本
SQL>@?/rdbms/admin/owmctab.plb
SQL>@?/rdbms/admin/owmaggrs.plb
SQL>@?/rdbms/admin/owmaggrb.plb
4、创建数据库时报错 ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-01501: CREATE DATABASE failed
ORA-01519: error while processing file ‘?/rdbms/admin/dtxnspc.bsq’ near line 5
ORA-00604: error occurred at recursive SQL level 1
ORA-30012: undo tablespace ‘UNDOTBS02’ does not exist or of wrong type
Process ID: 35451
Session ID: 2661 Serial number: 1 原因:参数文件和创建数据库脚本的默认 undo 空间不一致。