---------------------------bayaim_linux_install_oracle_11g--2.0----------------------------------------------
【登陆数据库】
2.确认安装成功
Linux下的Oracle在安装结束后是处于运行状态的。运行top –u oracle可以看到以Oracle用户运行的进程。在图形化界面下,运行$ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出现Oracle自带的免费Oracle管理客户端SQL Developer。试着连接刚安装的Oracle,连接成功。
sqlplus /nolog
SQL> conn /as sysdba
$ lsnrctl start
这样数据库的TNS也启动了,可以通过网络连接数据库了。一般情况下就启动这两个就够了,如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:
$ emctl start dbconsole
这样就可以通过https://servername:1158/em/console来访问EM控制台了。
这里我在实际操作中运行sqlplus出现了错误,大致如下:
sqlplus / as sysdba
sqlplus: error while loading shared libraries: /u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied
网上也有很多人遇到了这个问题,原来是SELinux在作怪,我采用的解决办法是禁止掉SELinux:
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled,然后重启服务器。
好像这个办法不是很好,也有说的解决办法是使用chcon 命令
示例: chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so
另外我在启动Listener时也报错TNS-12555: TNS:permission denied
后来网上搜了下,发现是oracle用户就无法进入/var/tmp/.oracle文件夹,方法很简单,执行:chmod 777 /var/tmp/.oracle 之后就ok了.
还有,我在启动EM控制台的时候又遇到了错误:Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
设置了这个变量后(运行export ORACLE_UNQNAME=xxxx实例名)后,再启动EM控制台,又出现了新的错误:OC4J Configuration issue. /u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_xxxx not found.没有这个文件?去查了一下,确实是没有这样一个文件存在,怎么办呢?其实很简单,运行:
emca -config dbcontrol db
根据向导重新配置一下就可以了
------------------oracle11g设置归档模式和非归档模式--------------------------
[root@testoracle ~]#mkdir /u01/arch
[root@testoracle ~]#chown -R oracle:oinstall /u01/arch
[root@testoracle ~]#sqlplus / as sysdba
SQL> archive log list;
SQL> select name, log_mode from v$database;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> alter system set log_archive_dest_1='location=/u01/arch' scope=spfile;
SQL> shutdown immediate;
SQL> startup;
SQL> show parameter dest;
log_archive_dest_1 string location=/u01/arch
SQL> alter system switch logfile; -- 是强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)
SQL> /
[root@testoracle arch]# pwd
/u01/arch
[root@testoracle arch]# ll
-rw-r----- 1 oracle oinstall 8863744 11月 2 14:53 1_12_991067760.dbf
-rw-r----- 1 oracle oinstall 1024 11月 2 14:53 1_13_991067760.dbf
[oracle@testoracle ~]$ lsnrctl
LSNRCTL> stop
LSNRCTL> start
Services Summary...
Service "prodb" has 1 instance(s).
Instance "prodb", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
修改日志文件命名格式
alter system set log_archive_max_processes = 5;
alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
-------------------------------------------------------------------------------------------------
【数据库配置】
SQL>alter database default tablespace FJFL_DATA;
SQL>create user fjfl default tablespace FJFL_DATA identified by hn_fjfl;
SQL>grant connect,resource,create session,create view to TEST;
[oracle@localhost ~]$orapwd file=$ORACLE_HOMEdbsorapwdfjfldb password=HN_oracle323. entries=3
可以在终端查看监听状态
[oracle@linux4 database]$ lsnrctl status
$ orapwd file=$ORACLE_HOMEpwdjsbx.ora password=jh_jsbx entries=2
orapwd file=$ORACLE_HOMEpwdjsbx.ora password=jh_jsbx entries=2
strings pwdjsbx.ora
查看数据库字符集:
SQL>select userenv('language') from dual;
SQL>select * from sys.props$ where name='NLS_CHARACTERSET';
可以查看服务器的版本:
SQL>select * from v$version;
该语句可以查看每天产生日志的多少,估计我们应用的日志量,可以估计归档的大小:
SQL>select to_char(FIRST_TIME,'yyyy/mm/dd') day,count(*) from v$log_history group by to_char(FIRST_TIME,'yyyy/mm/dd') order by day desc;
【sys登陆不上】
[root@localhost ~]# id oracle
uid=500(oracle) gid=500(oinstall) 组=500(oinstall),0(root)
[root@localhost ~]# usermod -G dba oracle
[root@localhost ~]# id oracle
uid=500(oracle) gid=500(oinstall) 组=500(oinstall),501(dba)
[root@localhost ~]# su - oracle
-bash: exoprt: command not found
[oracle@localhost ~]$sqlplus / as sysdba
SQL>create spfile from pfile;
SQL> select * from user_role_privs;
SQL> select USERNAME , ACCOUNT_STATUS from dba_users;
SQL>select * from USER_HISTORY$ –查看用户口令是否过期
SQL>select * from dba_profiles –查看用户使用的profile设置
SQL>sqlplus /nolog
SQL>conn /as sysdba
SQL>alter user <user_name> account unlock; –解锁
SQL>alter user <user_name> password expire; –密码过期
SQL>alter user <user_name> identified by <password>; –重设密码
SQL>alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";
SQL>alter user yuanlei temporary tablespace temp;
shutdown immediate
startup mount;
alter database archivelog;
alter database open;
alter tablespace FJFL_INDEX add datafile '/ora_data1/fjfldb/FJFL_INDEX01.dbf' size 10240M autoextend off
alter tablespace FJFL_INDEX
add datafile '/oradata/fjfldb/FJFL_INDEX01.dbf' size 10240M
autoextend on next M maxsize unlimited
CREATE TABLESPACE FJFL_INDEX
DATAFILE '/ora_data1/fjfldb/FJFL_INDEX01.dbf' size 10240M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
CREATE TABLESPACE FJFL_DATA
DATAFILE '/oracle_data/FJFL_DATA01.dbf' size 10240M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
CREATE TABLESPACE FJFL_INDEX DATAFILE '/oracle_data/FJFL_INDEX01.dbf' size 10240M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
alter tablespace SYSAUX add datafile '/oracle_data/FJFL_SYSAUX01.dbf' size 2048M autoextend off
alter tablespace TEMP add tempfile '/oracle_data/FJFL_TEMP01.dbf' size 2048M autoextend off
1、查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
--3、查看回滚段名称及大小
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
--4、查看控制文件
SELECT NAME FROM v$controlfile;
--5、查看日志文件
SELECT MEMBER FROM v$logfile;
--6、查看表空间的使用情况
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
--7、查看数据库库对象
SELECT owner, object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner, object_type, status;
--8、查看数据库的版本
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
--9、查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;
cd /database/admin/jsbx/bdump
tail -f alert_jsbx.log
------------------------------------------------------------------------------------------------
【自動刪除腳本】
find /ocfs_arch1/SID/1_*.dbf -mmin +5760 -exec rm -f {} ;
0 0 * * * find /oradata/fjflww/archivelog/ARC*_*.0001.dbf -mmin +1440 -exec rm -f {} ;
find /oradata/fjflww/archivelog/ARC*_*.0001.dbf -mtime +1 -exec rm -f {} ;
find /oradata/fjflww/archivelog/ARC*_*.0001.dbf -exec rm -f {} ;
目录:
/oradata/fjflww/archivelog
键入 crontab -e 编辑crontab服务文件
查看该用户下的crontab服务是否创建成功, 用 crontab -l 命令
查看服务是否已经运行用 ps -ax | grep cron
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
例如:
1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务