转载链接:https://blog.csdn.net/u011391839/article/details/76566316

根据实际情况略作调整~

博主参考了以上链接成功进行安装,列一下自己遇到的坑~以及稍作总结

1、系统版本:阿里云centos6.8 64位

2、jdk安装:博主安装的1.6版本

3、依赖库安装(第二个比较精确):

yum install -y binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* sysstat* libXp*  glibc-kernheaders
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

4、oracle官网下载安装包(64位版本):

linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

5解压

cd /home

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

待解压完毕后会生成文件夹/home/database

6、在/etc/hosts文件中增加主机名

(通过hostname命令获得)

vi /etc/hosts在文件尾部添加如下信息:

172.16.1.26   hostname

7、关闭防火墙

service iptables stop   //临时关闭防火墙

chkconfig iptables off  //永久关闭防火墙

8、添加oracle用户和用户组

groupadd oinstall              //创建oinstall组

groupadd dba                //创建dba组

useradd -g oinstall -G dba oracle  //将oracle用户加入组 

passwd oracle                  //修改并设定oracle用户密码  (密码为123456)

9、修改内核参数配置文件

1)        vi /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

2)        执行命令sysctl使其自检并生效    sysctl -p

10、  修改用户的限制文件

1)       修改进程数和最大会话数

执行如下命令,修改配置文件/etc/security/limits.conf

vi /etc/security/limits.conf在文件尾部添加如下信息:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

2)       设置关联信息

执行如下命令,修改关联文件/etc/pam.d/login

vi /etc/pam.d/login

在文件尾部添加如下信息:

session  required  /lib64/security/pam_limits.so

session required pam_limits.so

备注:64位系统时,千万别写成/lib/security/pam_limits.so,否则导致无法登录

3)       修改系统启动环境参数

执行如下命令,修改系统启动环境参数文件/etc/ profile

vi /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

11  创建安装目录和设置文件权限

1)        创建安装目录      

mkdir  /usr/local/oracle          //数据库系统安装目录

mkdir  /usr/local/oradata        //数据库数据安装目录

mkdir  /usr/local/oradata_back    //数据备份目录

mkdir  /usr/local/oraInventory     //清单目录

2)        赋予组用户及权限 

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/

12、配置oracle用户环境变量

vi /home/oracle/.bash_profile   文件内加入并修改至以下内容    

export ORACLE_BASE=/usr/local/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2./db_1

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

保存退出后执行source命令立即生效:source .bash_profile

13、编辑静默安装响应文件

首先进入oracle用户:su - oracle

1)  复制一份模板 

cp -R /home/database/response /usr/local/oracle

该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下

2)  修改安装所需的所有响应文件的所属组及权限   

cd  /usr/local/oracle/response

chown  oracle:oinstall/usr/local/oracle/response/*.rsp

chmod 755 /usr/local/oracle/response/*.rsp

3)  配置db_install.rsp文件     

vi /usr/local/oracle/response/db_install.rsp

文件内需要修改相应的参数配置如下:

oracle.install.option=INSTALL_DB_SWONLY                #安装类型,只装数据库软件

ORACLE_HOSTNAME=hostname                        #主机名称(命令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=81920      #自动管理内存的内存(M)  

oracle.install.db.config.starterdb.password.ALL=oracle    #设定所有数据库用户使用同一个密码   

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false            #(手动写了false)  

oracle.install.db.config.starterdb.password.SYS=123456

oracle.install.db.config.starterdb.password.SYSTEM=123456

DECLINE_SECURITY_UPDATES=true        # **注意此参数 设定一定要为true

备注:黄色部分可以注释掉

14、增加Swap分区
1.创建交换分区的文件:增加1G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。

# dd if=/dev/zero of=/home/swapfile bs=1M count=1024

2.设置交换分区文件:
 
# mkswap /home/swapfile  #建立swap的文件系统

3.立即启用交换分区文件:

# swapon /home/swapfile   #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:

/home/swapfile swap swap defaults 0 0

15、  根据响应文件安装oracle

在oracle用户下安装   su  - oracle

$ cd /home/database/

$./runInstaller  -silent -responseFile/usr/local/oracle/response/db_install.rsp -ignorePrereq

参数说明:     

/home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。  

runInstaller 是主要安装脚本   

-silent 静默模式   

-force 强制安装   

-ignorePrereq忽略warning直接安装。   

-responseFile读取安装应答文件。

安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。打开另一个终端,执行tail -f  提示的log名

主界面提示以下提示则表示软件主体安装成功。

根据提示在新创建的root窗口内执行以下提示的脚本:

#/usr/local /oraInventory/orainstRoot.sh

#/usr/local/oracle/product/11.2.0/db_1/root.sh

======================软件主体安装成功===============================

3.9  编辑静默建库响应文件

$cd  /usr/local/oracle/response

$mv  dbca.rspdbca_orcl.rsp  #改名为dbca_数据库名.rsp

3.10静默配置监听(网络)

通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:

# su - oracle

$netca /silent /responsefile /usr/local/oracle/response/netca.rsp

$ ll $ORACLE_HOME/network/admin/*.ora

成功运行后,在/user/local/oracle/product/11.2.0/db_1/network/admin目录下生成sqlnet.ora和listener.ora两个文件。

启动监听

$/user/local/oracle/product/11.2.0/db_1/bin/lsnrctlstart LISTENER

通过netstat-tlnp命令,看到
 tcp  0  0 :::1521       :::*      LISTEN      5477/tnslsnr
 说明监听器已经在端口上开始工作了。

3.11静默安装数据库(同时也建立一个对应的实例)

1)        修改/usr/local/oracle/response/dbca_orcl.rsp,设置如下:

RESPONSEFILE_VERSION = "11.2.0"  #不能更改

OPERATION_TYPE = "createDatabase" #不能更改

GDBNAME="orcl "#78 行全局数据库的名字=SID+主机域名

2)        静默建库命令如下

$dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp

SID="orcl" //149行 SID对应的实例名字

TEMPLATENAME = "General_Purpose.dbc"    #建库用的模板文件

SYSPASSWORD="123456"    #SYS管理员密码

SYSTEMPASSWORE="123456"#200行//SYSTEM管理员密码

DATAFILEDESTINATION= /usr/local/oradata /数据文件存放目录
RECOVERYAREADESTINATION=/usr/local/oradata_back#恢复数据存放目录

CHARACTERSET="AL32UTF8"#字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚

TOTALMEMORY= "5120"    #oracle内存5120MB,建议为物理内存70%~85%

3)         查看日志文件:

$ cat /opt/oracle/cfgtoollogs/dbca/hello/hello.log

4)        建库后实例检查 

$ps -ef | grep ora_ | grep -v grep| wc –l

21

$ps -ef | grep ora_ | grep -v grep

5)        建库后监听检查

$lsnrctl status

如果出现以下错误:

lsnrctl: error while loading sharedlibraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannotrestore segment prot after reloc: Permission denied

解决办法:在root用户下执行以下命令

su - root

setenforce 0

===================================至此远程PLSQL已经可以访问了==============================================

以下的我还没做~先转载过来

3.12修改数据库为归档模式(归档模式才能热备份,增量备份)

$export ORACLE_SID=orcl

$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 20 16:12:49 2017

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bitProduction

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

SQL> shutdownimmediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1603411968 bytes

Fixed Size                   2213776 bytes

Variable Size                    939526256 bytes

Database Buffers           654311424 bytes

Redo Buffers                      7360512 bytes

Database mounted.

SQL> alter databasearchivelog;

Database altered.

SQL> alter databaseflashback on;

Database altered.

SQL> alter databaseopen;

Database altered.

SQL> executeutl_recomp.recomp_serial();

PL/SQL procedure successfully completed.

SQL> alter systemarchive log current;

System altered.

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

3.13修改oracle启动配置文件

su – oracle

$vi/etc/oratab 

orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”

这样就可以通过dbstart启动此实例,监听器。

$dbshut$ORACLE_HOME

Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/shutdown.log

此时所有oracle的进程关闭,监听器也停止。

$dbstart$ORACLE_HOME

Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/startup.log

此时监听器工作,orcl实例运行,再次查看监听器状态。

$lsnrctl status

================================================

四、Linux下oracle数据库启动和关闭操作

4.1  启动oracle的步骤

Linux下启动Oracle分为以下两步:

n  启动数据库实例

n  启动lsnrctl监听

1)      启动oracle数据库实例

1)  以system用户身份登陆oracle

在oracle用户下,输入 sqlplus/nolog

2)  使用管理员权限

connect/as sysdba

3)  启动/关闭服务

startup参数 :
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用! 
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!

2)      启动oracle监听

数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监听器:

1)        登陆 

root登陆之后切换到oracle用户上,输入 su -  oracle

2)        检查oracle监听器运行状态

通过lsnrctl status命令查看

上述反馈的结果即为oracle监听没有启动

3)        启动监听,通过命令lsnrctl start

至此,oracle监听器启动成功!

4.2  关闭oracle

通过shutdown命令关闭oracle实例。

shutdown的参数 
Normal 需要等待所有的用户断开连接 
Immediate 等待用户完成当前的语句 
Transactional 等待用户完成当前的事务 
Abort 不做任何等待,直接关闭数据库 
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 
abort 执行强行断开连接并直接关闭数据库。

4.3  查看oracle服务是否已经启动

l  ps aux | grep ora_ #若无ora_**_**相关的进程,则oracle数据库实例未启动

l  netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动

l  lsnrctl status #查看监听器状态

l  netstat -tlnup | grep 1158 #若无任何显示,则EM未启动

l  emctl status dbconsole #查看EM状态

4.4  启动网页版管理器

Oracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用如下命令启动:

emctl start dbconsole

至此,可在web浏览器中输入:https://{主机IP 或 主机名 或 本地localhost}:1158/em,打开管理器,使用相关帐号登录进行数据库查看和管理。

五、Linux下建立Oracle服务及其开机自启动

如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢?

以root身份建立开机启动oracle服务的脚本:vi/etc/init.d/oracle,添加如下脚本:

#!/bin/sh

#chkconfig: 234520 80

#description: Oracledbstart / dbshut

#以上两行为chkconfig所需

ORA_HOME=/usr/local/oracle/product/11.2.0/db_1

ORA_OWNER=oracle

LOGFILE=/var/log/oracle.log

echo"#################################" >> ${LOGFILE}

date +"### %T%a %D: Run Oracle" >> ${LOGFILE}

if [ ! -f${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then

echo "Error: Missing the script file${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}

echo"#################################" >> ${LOGFILE}

exit

fi

start(){

echo "###Startup Database..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbstart ${ORA_HOME}"

echo "###Done."

echo "###Run database control..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl start dbconsole"

echo "###Done."

}

stop(){

echo "###Stop databasecontrol..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl stop dbconsole"

echo "###Done."

echo "###Shutdown Database..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbshut ${ORA_HOME}"

echo "###Done."

}

case"$1" in

'start')

start >> ${LOGFILE}

;;

'stop')

stop >> ${LOGFILE}

;;

'restart')

stop >> ${LOGFILE}

start >> ${LOGFILE}

;;

esac

date +"### %T%a %D: Finished." >> ${LOGFILE}

echo"#################################" >> ${LOGFILE}

echo ""

使用如下命令将/etc/init.d/oracle 置为可执行文件:

chmod a+x/etc/init.d/oracle

至此,可使用如下命令对oracle进行启动和关闭

/etc/init.d/oraclestart #启动oracle(包括数据库实例、监听器、EM)

/etc/init.d/oraclestop #关闭oracle

/etc/init.d/oraclerestart #重启oracle

将 oracle 添加到 chkconfig中:

chkconfig --addoracle

可使用如下命令查看和设置oracle服务的开机启动级别:

chkconfig | greporacle #查看oracle服务的开机启动级别

chkconfig --level24 oracle off #修改oracle服务的开机启动级别

chkconfig --level35 oracle on

至此可使用如下命令对oracle的启动或关闭进行管理

service oraclestart #启动

service oraclestop #关闭

service oraclerestart #重启

建立连接:

ln -s/etc/init.d/oracle /etc/rc0.d/K01oracle  #关机执行

ln -s/etc/init.d/oracle /etc/rc6.d/K01oracle  #重启执行

六、     建立表空间和用户

$ export ORACLE_SID=orcl; sqlplus / assysdba

进入SQL>后

创建临时表空间

create temporary tablespace user_temptempfile ‘/usr/local/oradata/orcl/user_temp.dbf' size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

创建数据表空间

create tablespace xtjg

logging

datafile '/opt/oracle/oradata/ orcl /xtjg.dbf'

size 50m

autoextend on;

 创建用户并指定表空间

create user xtjg_user identified by 123456

default tablespace xtjg

temporary tablespace user_temp;

给用户授予权限

grant resource,connect,dba to xtjg_user;

此时在其他机器上可以远程登录这个用户.

七、     Oracle数据库导入与导出

Oracle数据库导出有4种模式:full(全库导出),owner(用户导出),table(表导出),tablespace(表空间导出)。

1、数据常用导出命令

①将数据库TEST完全导出,用户名system密码manager,导出到/tmp/daochu.dmp中

exp system/manager@TEST  file=/tmp/daochu.dmp  full=y (全库导出)

exp xtjg_user/123456@ORCL  file=/tmp/XTJG.dmp  默认导出连接数据库的用户数据库对象

②将数据库中system用户和sys用户的表导出

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

③将数据库中的表table1 、table2导出

 exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

④将数据库中的表table1中的字段filed1以"00"打头的数据导出

 exp system/manager@TEST file=d:\daochu.dmp tables=(table1)query=\" where filed1 like '00%'\"

2、导入dmp命令

在导入dmp文件时候,通常我们需要新建一个用户来导入,新用户需要一个表空间和一个临时表空间。

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。

新建临时表空间:

create temporary tablespace user_temp

tempfile'/usr/local/oradata/orcl/user_temp.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

新建表空间:

create tablespace xtjg

logging

datafile '/usr/local/oradata/orcl/xtjg.dbf'

size 50m

autoextend on ;

新建用户:

create user xtjg_user identified by123456

default tablespace xtjg

temporary tablespace user_temp;

授权新用户:

grant connect,resource to user_name;

grand dba to user_name;

导入dmp文件:

imp user_name/user_password@SIDfile=F:\xxx.dmp full=y;

如:imp xtjg_user/123456@orcl  file=/home/software/XTJG.dmp full=y;

备注:

1、关于full=y 参数

①oracle exp命令中的full参数

full=y( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据.
full=n或不加full: 默认导出连接数据库的用户数据库对象.
②oracle imp命令中的full参数
Full=y  导入一个完整的数据库
 

2、删除命令

删除用户:

drop user user_name cascade;

删除表空间和临时表空间:

drop tablespace tablespace_name includingcontents;

最新文章

  1. call和apply的区别
  2. nginx 直接在配置文章中设置日志分割
  3. Spring JDBC常用方法详细示例
  4. angular-ngSanitize模块-linky过滤器详解
  5. PLSQL_低效SQL的识别和查询汇总(案例)
  6. Windows配置端口转发
  7. mysql 共享锁-排它锁
  8. c#写日志方法
  9. (转载)HTML--- input type=hidden
  10. MySQL搜索: WHERE 多条件
  11. iis7、iis8配置备份还原
  12. Android使用Home键后应用程序重启的问题
  13. Windows应用程序组成及编程步骤
  14. 配置percona mysql server 5.7基于gtid主主复制架构
  15. 18-10-18 Python 思维导图 很棒的
  16. 【添加tomcat里lib下的jar包】eclipse中The project cannot be built until build path errors are resolved
  17. struct和union,enum分析
  18. Java基础——JSP(一)
  19. 如何看待阿里 AI 每秒制作 8000 张海报?
  20. 深入浅出谈数据挖掘zz

热门文章

  1. DDD实战10 在项目中使用JWT的token
  2. 微服务实践之路--RPC
  3. 办ZigBee实验SmartRF Flash Programmer软件界面无法打开
  4. NS2网络模拟(1)-延迟
  5. [Hibernate系列—] 3. 映射文件和使用SchemaExport制作自己主动Schema
  6. Http请求格式(在Linux下使用telnet亲测,通过这篇我才明白)
  7. WPF Binding Path妙用代码实现
  8. Windows系统CPU内存网络性能统计第一篇 内存
  9. 【转】 C#后台调用前台javascript的五种方法
  10. 利用WIX制作安装包(1)