1.准备:
1
|
df -H |
查看空间剩余 一般准备最少5G
2.查看swap分区大小
1
|
du -sh /tmp/ |
最少400M
3. 建组建用户
1
2
3
4
|
groupadd dba -g 111 groupadd oinstall -g 110 useradd oracle -u -110 -g 110 -G 111 passwd oracle --stdin |
4. 设置参数
1
2
|
su - oracle vi .bash_profile |
1
2
3
4
|
export ORACLE_BASE=/u01/oracle export ORACLE_HOME=$ORACLE_BASE/10g export ORACLE_SID=orcl PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin |
5. 权限
1
2
3
|
su mkdir /u01/oracle chown oracle:oinstall /u01/oracle/ -R |
6. 修改系统参数
1
2
3
4
5
6
7
8
9
|
sysctl -a|grep sem|sed 's/32/100/2' >> /etc/sysctl.conf sysctl -a|grep ip_local|sed -e 's/32768/1024' -e 's/61/65/' >> /etc/sysctl.conf sysctl -a|grep rmem_d|sed 's/109568/262144' >> /etc/sysctl.conf sysctl -a|grep rmem_ma|sed 's/131071/262144' >> /etc/sysctl.conf sysctl -a|grep wmem_ma|sed 's/131071/262144' >> /etc/sysctl.conf sysctl -a|grep wmem_de|sed 's/109568/262144' >> /etc/sysctl.conf sysctl -a|grep file-m|sed 's/83702/65536' >> /etc/sysctl.conf sysctl -p |
7. 安装
1
2
3
4
|
xhost + su - oracle runinstall |
8.问题解决
安装界面乱码问题
orcale用户:
1
|
[oracle@~]$ export LC_CTYPE= "en_US.UTF-8" |
版本问题
修改/etc/redhat-release里的版本为低版本(Redhat 4.X)
xhost +报错
最简单的,注销当前用户,使用oracle用户登录,进行安装
9.启动和关闭
查询数据库当前的状态:
1
|
> select OPEN_MODE from v$ database ; |
1
2
3
4
|
oracle not available ------- oracle没启动实例 oracle not mounted ------- oracle在nomount阶段 oracle mounted ------- oracle在mount阶段 oracle read write ------- oracle在open阶段 |
9.1.sqlplus
启动实例阶段 nomount --------------
1
|
>startup [force] [pfile=xxx] nomount; |
查参数文件错误 spfilesid.ora---spfile.ora---initsid.ora
查看使用的参数文件 >show parameter spfile 不为空即以spfile启动,否则是pfile
分配内存
记录信息到alert文件和跟踪文件
1
|
#tail -f /u01/oracle/admin/orcl/bdump/alert_orcl.log |
启动后台进程
查看数据库是否启动 #ps -ef|grep ora_
【本阶段设置参数】
[startup restrict 启动到受限制会话,不允许别人连接的情况下对数据库进行操作]
装载数据库阶段
1
|
db mount ------------------ >alter database mount ; |
关联数据库和当前的实例
定位并打开参数文件中指定的控制文件
控制文件
1
|
>show parameter control_file; |
【本阶段可以操作数据库物理操作:alter database,建库删库,恢复数据库;命名数据文件,启用禁用日志】
打开数据库阶段 ---------------
1
|
>alter database open ; |
判断数据文件和日志文件是否存在,是否打开,检查数据库的一致性
打开联机数据文件和日志文件
【本阶段对数据库数据进行操作】
关闭数据库阶段 ---------------
1
|
> shutdown [normal|transactional|immediate|abort] |
将缓冲区告诉缓存中的更改及重做日志缓冲区高速缓存中的条目写入数据文件和联机重做日志文件
关闭数据文件和重做日志文件
卸载数据库
关闭控制文件
关闭实例
alter文件和跟踪文件关闭
sga回收、后台进程终止
1
|
shutdown [normal|transactional|immediate|abort] |
abort不是一致性关闭
9.2.dbstart & dbshut
vi /etc/oratab 中数据库最后的字段是Y,才能通过dbstart和dbshut控制
vi $ORACLE_HOME/bin/dbstart 中ORACLE_HOME_LISTNER的值为$ORACLE_HOME时,启动监听
附:oracle开机启动
1
2
3
|
head -n 6 /etc/init .d /network > /etc/init .d /oracle10g vi /etc/init .d /oracle10g |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
ORACLE_HOME= /u01/oracle/10g if [ !-f $ORACLE_HOME /bin/dbstart ] then echo "oracle cannot start" exit fi if [ ! -f $ORACLE_HOME /bin/lsnrctl ] then echo "lsnrctl cannot start" exit fi case "$1" in 'start' ) echo "starting oracle 10g ...." su - oracle -c "$ORACLE_HOME/bin/dbstart" #su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" ------>start oem ;; 'stop' ) echo "stopping oracle 10g ...." #su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole" ------>stop oem su - oracle -c "$ORACLE_HOME/bin/dbshut" ;; *) echo "usage $0: start|stop" ;; esac |
1
2
|
chmod a+x /etc/init .d /oracle10g chkconfig oracle10g on |