• bayaim_linux_configure_oracle


    ---------------------------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,添加相应的任务

  • 相关阅读:
    Netty实战
    ObjectTools反射实例
    SpringBoot新增监听器Listener
    拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
    Linux CentOS7.2下安装Redis && 配置Redis开机自启动
    JVM命令行工具&垃圾收集器&垃圾收集策略思维导图
    Redis总结
    Java自定义注解的实现
    反射实例
    系统管理员常用的Linux命令
  • 原文地址:https://www.cnblogs.com/bayaim/p/9896402.html
Copyright © 2020-2023  润新知