Welcome 微信登录

首页 / 数据库 / MySQL / Oracle用户目录误删除的恢复

当我们在安装Oracle软件前,必须先创建oracle用户组,如oinstall,dba,oper等,并且必须创建oracle用户
在创建完用户账户后,会自动在/home文件夹下,增加一个以用户名命名的文件夹,里面就是存放该用户的一些环境变量等信息
当我们在做文件清理的时候,如果不小心执行了rm -rf /home/oracle,那么该如何恢复这些文件呢?其实在创建用户的过程中,还会对几个目录进行修改,大致有以下几个:
/etc/passwd --用户密码
/etc/shadow --密钥文件/etc/group --用户组
/etc/skel/.* --骨架文件看一下这些文件中和oracle用户相关的内容:
[oracle@ora11g ~]$ cat /etc/passwd |grep oracle
oracle:x:54321:54321::/home/oracle:/bin/bash
[oracle@ora11g ~]$ cat /etc/shadow |grep oracle
cat: /etc/shadow: Permission denied
[oracle@ora11g ~]$ su - root
Password:
[root@ora11g ~]# cat /etc/shadow |grep oracle
oracle:$1$J8eXSYtR$xHRcqxnw3ReD9o7VyNAWf/:16511:0:99999:7:::
[root@ora11g ~]# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
lock:x:54:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
nscd:x:28:
floppy:x:19:
vcsa:x:69:
pcap:x:77:
slocate:x:21:
ntp:x:38:
dbus:x:81:
audio:x:63:gdm
avahi:x:70:
rpc:x:32:
mailnull:x:47:
smmsp:x:51:
sshd:x:74:
oprofile:x:16:
rpcuser:x:29:
nfsnobody:x:65534:
xfs:x:43:
stapdev:x:101:
stapusr:x:102:
stap-server:x:155:
haldaemon:x:68:
avahi-autoipd:x:156:
gdm:x:42:
sabayon:x:86:
oinstall:x:54321:
dba:x:54322:oracle
[root@ora11g ~]# cd /etc/skel
[root@ora11g skel]# ls -la
total 64
drwxr-xr-x  3 root root  4096 Mar 17 16:11 .
drwxr-xr-x 96 root root 12288 May  4 10:00 ..
-rw-r--r--  1 root root    33 Jun  2  2011 .bash_logout
-rw-r--r--  1 root root 176 Jun  2  2011 .bash_profile
-rw-r--r--  1 root root 124 Jun  2  2011 .bashrc
-rw-r--r--  1 root root 515 Jun 21  2011 .emacs
drwxr-xr-x  4 root root  4096 Feb  1  2012 .mozilla
[root@ora11g skel]# cd /home/oracle
[root@ora11g oracle]# ls -la
total 44
drwx------ 4 oracle oinstall 4096 May  4 10:22 .
drwxr-xr-x 3 root root   4096 Mar 17 16:49 ..
-rw------- 1 oracle oinstall 2381 May  4 10:20 .bash_history
-rw-r--r-- 1 oracle oinstall 33 Mar 17 16:49 .bash_logout
-rw-r--r-- 1 oracle oinstall  328 Mar 18 13:01 .bash_profile
-rw-r--r-- 1 oracle oinstall  124 Mar 17 16:49 .bashrc
-rw-r--r-- 1 oracle oinstall  515 Mar 17 16:49 .emacs
drwxr-xr-x 4 oracle oinstall 4096 Mar 17 16:49 .mozilla
drwxr-xr-x 3 oracle oinstall 4096 Mar 17 17:06 .oracle
-rw------- 1 oracle oinstall 1408 Mar 18 13:01 .viminfo可以看到/etc/skel目录下的几个文件同/home/oracle目录下的文件时相同的[root@ora11g oracle]# cd .oracle
[root@ora11g .oracle]# ls -la
total 12
drwxr-xr-x 3 oracle oinstall 4096 Mar 17 17:06 .
drwx------ 4 oracle oinstall 4096 May  4 10:22 ..
drwxr-xr-x 2 oracle oinstall 4096 Mar 17 17:18 logs
[root@ora11g .oracle]#
[root@ora11g .oracle]# cd logs
[root@ora11g logs]# ll
total 260
-rw-r--r-- 1 oracle oinstall 41693 Mar 17 17:06 installActions2015-03-17_05-03-57PM.log
-rw-r--r-- 1 oracle oinstall 33118 Mar 17 17:09 installActions2015-03-17_05-08-08PM.log
-rw-r--r-- 1 oracle oinstall 33118 Mar 17 17:13 installActions2015-03-17_05-12-54PM.log
-rw-r--r-- 1 oracle oinstall 33118 Mar 17 17:17 installActions2015-03-17_05-15-29PM.log
-rw-r--r-- 1 oracle oinstall 33118 Mar 17 17:17 installActions2015-03-17_05-17-07PM.log
-rw-r--r-- 1 oracle oinstall 33118 Mar 17 17:18 installActions2015-03-17_05-17-49PM.log
-rw-r--r-- 1 oracle oinstall 33147 Mar 17 17:18 installActions2015-03-17_05-18-26PM.log
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:06 oraInstall2015-03-17_05-03-57PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:06 oraInstall2015-03-17_05-03-57PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:09 oraInstall2015-03-17_05-08-08PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:09 oraInstall2015-03-17_05-08-08PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:13 oraInstall2015-03-17_05-12-54PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:13 oraInstall2015-03-17_05-12-54PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:17 oraInstall2015-03-17_05-15-29PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:17 oraInstall2015-03-17_05-15-29PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:17 oraInstall2015-03-17_05-17-07PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:17 oraInstall2015-03-17_05-17-07PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:18 oraInstall2015-03-17_05-17-49PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:18 oraInstall2015-03-17_05-17-49PM.out
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:18 oraInstall2015-03-17_05-18-26PM.err
-rw-r--r-- 1 oracle oinstall   0 Mar 17 17:18 oraInstall2015-03-17_05-18-26PM.out/home/oracle/.oracle/logs目录中存放的是在用OUI安装oracle软件时生成的一些日志信息好,现在了解了大致的目录结构,那么当我们由于误操作删除了/home/oracle目录后,恢复其实就很容易了
即只需要把/etc/skel目录下的文件全都拷贝到原目录下,应该就可以解决这个问题了,下面我们来看一下测试过程在数据库正常运行的情况下,把/home/oracle目录删除,为了提高可恢复性,把具有危险操作的rm -rf操作替换成mv更名操作[oracle@ora11g ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon May 4 11:17:21 2015Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to an idle instance.SQL> startup
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size   2257840 bytes
Variable Size 507513936 bytes
Database Buffers 322961408 bytes
Redo Buffers   2371584 bytes
Database mounted.
Database opened.
SQL> host
[oracle@ora11g ~]$ ps -ef | grep oracle
root      3402  3289  0 10:22 pts/2    00:00:00 su - oracle
oracle    3403  3402  0 10:22 pts/2    00:00:00 -bash
root      3587  3433  0 10:56 pts/2    00:00:00 su - oracle
oracle    3588  3587  0 10:56 pts/2    00:00:00 -bash
root   24415  3618  0 11:14 pts/2    00:00:00 su - oracle
oracle 24416 24415  0 11:14 pts/2    00:00:00 -bash
oracle 24453 24416  0 11:17 pts/2    00:00:00 sqlplus as sysdba
oracle 24463   1  0 11:17 ?        00:00:00 ora_pmon_ora11g
oracle 24467   1  0 11:17 ?        00:00:00 ora_psp0_ora11g
oracle 24471   1  2 11:17 ?        00:00:02 ora_vktm_ora11g
oracle 24477   1  0 11:17 ?        00:00:00 ora_gen0_ora11g
oracle 24481   1  0 11:17 ?        00:00:00 ora_diag_ora11g
oracle 24485   1  0 11:17 ?        00:00:00 ora_dbrm_ora11g
oracle 24489   1  0 11:17 ?        00:00:00 ora_dia0_ora11g
oracle 24493   1  0 11:17 ?        00:00:00 ora_mman_ora11g
oracle 24497   1  0 11:17 ?        00:00:00 ora_dbw0_ora11g
oracle 24501   1  0 11:17 ?        00:00:00 ora_lgwr_ora11g
oracle 24505   1  0 11:17 ?        00:00:00 ora_ckpt_ora11g
oracle 24509   1  0 11:17 ?        00:00:00 ora_smon_ora11g
oracle 24513   1  0 11:17 ?        00:00:00 ora_reco_ora11g
oracle 24517   1  0 11:17 ?        00:00:00 ora_mmon_ora11g
oracle 24521   1  0 11:17 ?        00:00:00 ora_mmnl_ora11g
oracle 24525   1  0 11:17 ?        00:00:00 ora_d000_ora11g
oracle 24529   1  0 11:17 ?        00:00:00 ora_s000_ora11g
oracle 24543 24453  0 11:17 ?        00:00:01 oracleora11g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 24547   1  0 11:17 ?        00:00:00 ora_arc0_ora11g
oracle 24551   1  0 11:17 ?        00:00:00 ora_arc1_ora11g
oracle 24555   1  0 11:17 ?        00:00:00 ora_arc2_ora11g
oracle 24559   1  0 11:17 ?        00:00:00 ora_arc3_ora11g
oracle 24563   1  0 11:17 ?        00:00:00 ora_qmnc_ora11g
oracle 24591   1  0 11:18 ?        00:00:00 ora_q000_ora11g
oracle 24595   1  0 11:18 ?        00:00:00 ora_q001_ora11g
oracle 24599   1  0 11:18 ?        00:00:00 ora_cjq0_ora11g
oracle 24665 24453  0 11:19 pts/2    00:00:00 /bin/bash
oracle 24684 24665  0 11:19 pts/2    00:00:00 ps -ef
oracle 24685 24665  0 11:19 pts/2    00:00:00 grep oracle
[oracle@ora11g ~]$ exit
[root@ora11g ~]# cd /home[root@ora11g home]# mv /home/oracle /home/oracle_bak[root@ora11g home]# ls -la
total 20
drwxr-xr-x  3 root root   4096 May  4 11:33 .
drwxr-xr-x 26 root root   4096 May  4 10:00 ..
drwx------  4 oracle oinstall 4096 May  4 11:30 oracle_bak
[root@ora11g home]# mkdir oracle[root@ora11g home]# chown oracle:oinstall oracle
[root@ora11g home]# ls -la
total 24
drwxr-xr-x  4 root root   4096 May  4 11:33 .
drwxr-xr-x 26 root root   4096 May  4 10:00 ..
drwxr-xr-x  2 oracle oinstall 4096 May  4 11:33 oracle
drwx------  4 oracle oinstall 4096 May  4 11:30 oracle_bak
[root@ora11g home]# cd /etc/skel
[root@ora11g skel]# ls -la
total 64
drwxr-xr-x  3 root root  4096 Mar 17 16:11 .
drwxr-xr-x 96 root root 12288 May  4 11:07 ..
-rw-r--r--  1 root root    33 Jun  2  2011 .bash_logout
-rw-r--r--  1 root root 176 Jun  2  2011 .bash_profile
-rw-r--r--  1 root root 124 Jun  2  2011 .bashrc
-rw-r--r--  1 root root 515 Jun 21  2011 .emacs
drwxr-xr-x  4 root root  4096 Feb  1  2012 .mozilla
[root@ora11g skel]# cp .* /home/oracle/
cp: omitting directory `."
cp: omitting directory `.."
cp: omitting directory `.mozilla"
[root@ora11g skel]# cd /home/oracle
[root@ora11g oracle]# ls -la
total 28
drwxr-xr-x 2 oracle oinstall 4096 May  4 11:33 .
drwxr-xr-x 4 root root   4096 May  4 11:33 ..
-rw-r--r-- 1 root root     33 May  4 11:33 .bash_logout
-rw-r--r-- 1 root root      176 May  4 11:33 .bash_profile
-rw-r--r-- 1 root root      124 May  4 11:33 .bashrc
-rw-r--r-- 1 root root      515 May  4 11:33 .emacs注意权限,必须是oracle用户,oinstall组的[root@ora11g oracle]# chown oracle:oinstall /home/oracle -R
[root@ora11g oracle]# ls -la
total 28
drwxr-xr-x 2 oracle oinstall 4096 May  4 11:33 .
drwxr-xr-x 4 root root   4096 May  4 11:33 ..
-rw-r--r-- 1 oracle oinstall 33 May  4 11:33 .bash_logout
-rw-r--r-- 1 oracle oinstall  176 May  4 11:33 .bash_profile
-rw-r--r-- 1 oracle oinstall  124 May  4 11:33 .bashrc
-rw-r--r-- 1 oracle oinstall  515 May  4 11:33 .emacs
[root@ora11g oracle]# su - oracle
[oracle@ora11g ~]$ sqlplus / as sysdba
-bash: sqlplus: command not found
[oracle@ora11g ~]$ vi .bash_profile添加以下环境变量的内容:
export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ora11g
export PATH=$PATH:$ORACLE_HOME/bin[oracle@ora11g ~]$ . .bash_profile
[oracle@ora11g ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon May 4 11:36:31 2015Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>oracle用户又可以继续登录了更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址