日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    linux企业应用

    更新oracle数据库的shell脚本

    这是一个使用脚本更新数据库的一个例子.运行环境是bash shell,shell的第一个参数是go,第二个参数是sql文件的一个列表.

    第一个参数实际上没有什么意义,但是它最好还是存在,它存在的目的是:不知道这个shell执行效果的人万一要运行这个脚本,在不添加go参数的时候是不会执行的.从而保证数据库的安全.第二个参数是一个文件列表,格式如下:

    tablename1,table1_sql.txt
    tablename2,table2_sql.txt
    tablename是用来更新的表的名字,table2_sql.txt得文件的内容是一些插入,更新,删除的sql语句。

    具体的shell如下:

    #! /bin/sh
    #下面是一个环境设定
    TS_SYSTEM_DATE=`date ‘+%m%d%H%M%S’`
    TS_ZHIXING_DATE=`date ‘+%Y%m%d’`
    ORA_USR=${userid}/${password}@${instance}

    TS_LOG_PATH=${LOG_DIR}/setup
    if test -d ${TS_LOG_PATH}
    then
    TS_RCODE=0
    else
    mkdir -m 777 ${TS_LOG_PATH}
    fi
    TS_DBBACKUP_PATH=${DBBACKUP_DIR}/${TS_ZHIXING_DATE}_DBBACKUP
    if test -d ${TS_DBBACKUP_PATH}
    then
    TS_RCODE=0
    else
    mkdir -m 777 -p ${TS_DBBACKUP_PATH}
    fi

    ORACLE

    Oracle SQL Loader的语法和一个用法例子

    sqlldr的参数有以下[oracle@oracle11g niudu]$ sqlldr

    SQL*Loader: Release 11.1.0.6.0 – Production on Mon Dec 3 21:45:35 2012

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    Usage: SQLLDR keyword=value [,keyword=value,…]
    Valid Keywords:
    userid — ORACLE username/password
    control — control file name
    log — log file name
    bad — bad file name
    data — data file name
    discard — discard file name
    discardmax — number of discards to allow          (Default all)
    skip […]

    ORACLE

    linux环境下oracle数据的数据导入和备份

    在这里做一个实验就一些模拟数据导入oracle数据库,有效数据只有三列,用户名,密码,和邮箱.
    模拟数据的内容如下:
    [oracle@oracle11g niudu]$ head niudu.txt
    zkn # 67899876 # zkn@cykn.net
    LhuZhlnn # 670708868797 # chennminn_zhenn@163.com
    myzhu # 780968 # mytho@tom.com
    huwulm # 7080768 # hujiye@763.net
    nhknjl # KIN98kk6! # ccekcjl@71cn.com
    nlzyky # y67890 # yonnmhil@71cn.com
    Minhhll # hvvll # hvvollv@netehye.com
    yinlj # lj7707 # junlu@veovlemhil.com.cn
    jiniuhuhn # 67890 # jiniuhuhn@163.net
    Lil # hliliikh # mwn@jxmw.com

    首先要判断模拟数据中每个字段的长度,可以使用下面的脚本来统计各字段的长度:
    [oracle@oracle11g niudu]$ cat ../shl/getColLength.awk
    #!/bin/awk

    BEGIN{
    FS=” “;
    para1=0;
    para2=0;
    para3=0;
    print(“username==passwrod===email”);
    }

    {
    if(length($1)>para1)
    para1=length($1);
    if(length($3)>para2)
    para2=length($3);
    if(length($5)>para3)
    para3=length($5);
    }

    END{
    printf(“%s%d%s%d%s%d\n”,”      “,para1,”        “,para2,”      “,para3);
    printf(“%s%d\n”,”There are lines:  “, NR);
    }
    运行结构如下:
    [oracle@oracle11g […]

    ORACLE

    SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

    SQL> conn lxy/lxy

    SQL> set autot on stat;
    SP2-0618: Cannot find the Session Identifier.  Check PLUSTRACE role is enabled
    SP2-0611: Error enabling STATISTICS report

    SQL> cgrant plustrace to lxy ;
    grant plustrace to lxy
    *
    ERROR at line 1:
    ORA-01919: role ‘PLUSTRACE’ does not exist 角色不存在

    SQL> @/u01/oracle/sqlplus/admin/plustrce.sql  运行这个sql

    SQL> grant plustrace to lxy;

    Grant succeeded. 这样分配就可以了

    SQL> conn lxy/lxy
    Connected.
    SQL> set autot on stat
    SQL> select count(*) from […]

    ORACLE

    ORA-01950: no privileges on tablespace 'USERS'错误解决方法

    SQL> create user lxy identified by lxy default tablespace users;

    User created.

    SQL> grant create session,alter session,create table,create view,
    2  create synonym,create cluster,create database link,create sequence,
    3  create trigger,create type,create procedure,create operator to lxy;

    Grant succeeded.

    SQL> conn lxy/lxy
    Connected.
    SQL> create table m(id integer,name char(10));
    create table m(id integer,name char(10))
    *
    ERROR at line 1:
    ORA-01950: no privileges on tablespace ‘USERS’

    上面错误的解决方法是在创建用户分配权限后,执行下面的语句:

    SQL> alter user lxy quota 10M […]

    ORACLE

    linux5.X下安装oracle11g

    准备工作:先到www.oracle.com下载linux_x86_11gR1_database.zip(x86代表计算机的架构现,  在一般都是x86的计算机),在下载一个安装文档。

    一.创建必要的用户,组和目录

    #mkdir  /u01  这里只创建此文件夹,因为在创建用户oracle的时候会在此目录下创建oarcle目录

    ,如果此时就创建oracle目录,那么在下面创建oracle用户时,/etc/skel下的文件就不会被默认复制到/u01/oracle目录了。

    #groupadd dba

    #groupadd oinstall

    #useradd -g oinstall -G dba -d /u01/oracle  oracle 创建oracle用户并指定所属组,附加组和家目录。

    #passwd oracle 设置密码

    #chown -R oracle:oinstall /u01 把u01目录赋予oracle用户oinstall组

    #ls -l 查看命令是否生效