环境准备
- win7环境下远程连接工具XShell;
- CentOS6.5 64位系统;
- Oracle linux 64位版本安装包:
linux.x64_11gR2_database_1of2.zip
lnux.x64_11gR2_database_2of2.zip
安装前需要一定的依赖库
yum -y install gcc gcc-c++ make binutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-commonglibc-devel libaio libaio-devel libgcclibstdc++ libstdc++-devel unixODBC unixODBC-devel
设定swap空间
- 在
/home
下生成swap文件 设定大小2GB
cd /home
dd if=/dev/zero of=/home/swapfile bs=1M count=2048
- 设定使用
swapfile
交换文件
mkswap /home/swapfile
- 启用交换分区
swapon /home/swapfile
- 编辑文件
vi /etc/fstab
- 以便引导系统时启用交换文件,文件最下方插入
/home/swapfile swap swap defaults 0 0
添加oracle用户
- 创建oinstall、dba组 将oracle用户加入组 修改并设定oracle用户密码
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -g oinstall -G dba -m -d /home/oracle oracle
passwd oracle
-g:指定用户所属的群组
-G:指定用户所属的附加群组
-d:指定用户主目录
-m:若用户主目录不存在,则自动创建。
修改内核参数
- 编辑文件
/etc/sysctl.conf
vi /etc/sysctl.conf
- 配置文件内加入 修改以下参数。如果没有可以自己添加,如果默认值比参考值大,则不需要修改。
kernel.shmall = 2097152 kernel.shmmax = 536870912 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 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 = 1048586`
- 执行命令sysctl使其自检并生效
sysctl -p
修改用户资源限制
- 修改配置文件
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 /lib64/security/pam_limits.so session required pam_limits.so
这里注意:若添加下面语句,本地用户不能登录系统!
session required /lib/security/pam_limits.so
创建安装目录
- 并赋予组用户及权限
mkdir -p /usr/local/oracle/ /usr/local/oraInventory/ /usr/local/oradata/
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
创建oraInst.loc文件
- 创建
oraInst.loc
文件
vi /etc/oraInst.loc
- 文件内加入以下内容
inventory_loc=/usr/local/oraInventory inst_group=oinstall
- 设定该文件的用户组及权限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
通过xshell上传zip文件到/home
并解压
- 解压文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
待解压完毕后会生成文件夹/home/database
- 修改其用户组及权限此处直接使用777
chmod 777 /home/database
chown -R oracle.oinstall /home/database
关闭Selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
[root@oracledb ~]# setenforce 0
关闭防火墙
service iptables stop
chkconfig iptables off
准备oracle安装应答模板文件db_install.rsp文件。
- 该文件默认存放在解压后的安装包内,也就是本例中
/home/database/response
下,将oracle静默安装所需应答文件全部拷贝至/usr/local/oracle
文件夹下
cp /home/database/response/* /usr/local/oracle/
- 修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /usr/local/oracle/*.rsp
chmod 755 /usr/local/oracle/*.rsp
- 配置db_install.rsp文件
vi /usr/local/oracle/db_install.rsp
- 文件内修改相应的参数配置如下:
oracle.install.option=INSTALL_DB_SWONLY //安装类型,只装数据库软件 ORACLE_HOSTNAME=db //主机名称(命令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=oinstall //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=81920 //自动管理内存的内存(M) oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false) DECLINE_SECURITY_UPDATES=true // **注意此参数 设定一定要为true
设置oracle用户环境
- 由root切换至创建好的oracle用户 (必须有 - )
su - oracle
- 修改该用户的用户配置文件
/home/oracle
目录下
vi /home/oracle/.bash_profile
- 文件内加入并修改至以下内容
ORACLE_BASE=/usr/local/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 ORACLE_SID=orcl PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
- 保存退出后执行
source
命令立即生效。
source .bash_profile
在oracle用户下开始安装。
- 执行命令安装。
/home/database/./runInstaller -silent -force -ignoreSysprereqs -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
参数说明
/home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改。
./runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。
- 可以通过XShell另起窗口并以root登陆。
通过watch -d -n 2 'du -sh /usr/local/oracle'
监测oracle安装目录是否变化。
或者直接tail -f
命令监测安装log日志。 - 等待安装编译直至出现以下内容,在新创建的root窗口内执行以下提示内的脚本:
/usr/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
- Open a terminal window
- Log in as "root"
- Run the scripts
- Return to this window and hit"Enter" key to continues
Successfully Setup Software.
DBCA静默安装
- 修改
/usr/local/oracle/dbca.rsp
文件
[GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "orcl" SID = “orcl" TEMPLATENAME = "General_Purpose.dbc" SYSPASSWORD="password" SYSTEMPASSWORD="password" DATAFILEDESTINATION = "/usr/local/oracle/oradata" RECOVERYAREADESTINATION="/usr/local/oracle/flash_recovery_area" CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8"
- 根据
init.ora
,创建一个新的initorcl.ora
,修改里面的<$ORACLE_HOME>
为绝对路以及修改其他配置名称。 - 修改hosts文件 配置主机名 host
vi /etc/hosts
ip 主机名
- DBCA静默安装
su - oracle $ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/oracle/dbca.rsp
复制数据库文件
1% 已完成
......
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
......
62% 已完成
正在进行数据库创建
66% 已完成
......
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件"/usr/local/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
使用参数说明:
-silent指以静默方式执行dbca命令
-createDatabase指使用dbca
-templateName指定用来创建数据库的模板名称,这里指定为General_Purposedbc,即一般用途的数据库模板
-gdbname指定创建的全局数据库名称,这里指定名称为orcl
-sid 指定数据库系统标识符,这里指定为orcl,与数据库同名
-responseFile 指定安装响应文件,NO_VALUE表示没有指定响应文件
-characterSet 指定数据库使用的字符集,这里指定为AL32UTF8
-memoryPercentage 指定用于oracle的物理内存的百分比,这里指定为30%
-emConfiguration 指定Enterprise Management的管理选项。LOCAL表示数据库由Enterprise Manager本地管理
修改监听配置
- 在此目录下
/usr/local/oracle/product/11.2.0/db_1/network/admin
将/admin/samples
下三个文件如下配置到/admin
下:
*修改listener.ora*
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = centOS6.5)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME= orcl) (SID_NAME = orcl) (ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1) (PROGRAM = extproc) ) )
tnsnames.ora
centOS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = centOS6.5)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
- 修改oracle启动配置文件
su - oracle
vi /etc/oratab
orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
这样就可以启动此实例,监听器。
netstat -tlnp //查看监听情况
dbstart $ORACLE_HOME //此时所有oracle的进程关闭,监听器也停止。
dbshut $ORACLE_HOME //再次查看监听器状态。
lsnrctl start ---启动监听
lsnrctl status ----查看监听
sqlplus配置
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn / as sysdba ---进入系统管理用户
SQL> startup ; ---启动oracle实例
SQL> shutdown immediate; ---停掉oracle实例
SQL> create tablespace oracle datafile 'oracle.dbf' size 100M reuse, 'oracle2.dbs' size 100M reuse default storage (initial 500K next 300K pctincrease 20); ----创建表空间
SQL> create user test identified by "test" default tablespace oracle profile default account unlock; -----创建用户(create user username identified by password)
SQL> grant dba to test; ----授权用户dba权限
Grant succeeded.
SQL> grant unlimited tablespace to test;
Grant succeeded.
SQL> create table z_test(id number,name varchar(20)); ----创建表
SQL> insert into z_test select 1,'a' from dual; ---插入表数据
SQL> select name from v$database; ---查看实例名
SQL> select username,default_tablespace from user_users; ---查看当权用户所在表空间
SQL> select table_name from all_tables where TABLESPACE_NAME='表空间' ---查看表空间中的所有表(表空间名字一定要大写。)
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
SQL> alter system archive log current; (手工归档测试)
SQL> select table_name from dba_tables;
成功!!!
若要使用远程访问的话,请务必关闭防火墙!!!