12-10 在使用stl的时候应该注意 如 map<string, ofstream> , 在使用的时候就会有问题 这个时候使用指针来解决拷贝问题 map<string, ofstream*> -- 12-11 kill pid 默认的是term信号 kill函数也用来发送信号 ps -fu 显示当前用户的进程 dir = opendir(dirPath); 获取的是打开目录的这一时刻的目录信息,如果目录内容改变了,不会刷新 /root/test/test/divfile -- 12-13 修改系统时间 date -s '1518' +%hh%mm 当oracle没有自动启动后,需要手工启动 用oracle用户登录 sqlplus / as sysdba SQL> startup; ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2144824 bytes Variable Size 989857224 bytes Database Buffers 603979776 bytes Redo Buffers 7430144 bytes Database mounted. Database opened. sed 编辑文件 替换字符串 把每行中cc及其前面的字符串去掉 sed -i s/'*cc'// tt -- 2010-12-14 sqlldr niop_adm/niop@102_db control=tt.ctl data=3001_1.txt rows=300 bindsize=2560000 readsize=3000000 sqlldr niop_adm/niop@102_db control=tt.ctl data=3001_1.txt rows=300 bindsize=2560000 readsize=3000000 direct=true 在进行sqllsr操作的时候,如果字段的长度超过256的时候 silent抑制提示信息 silent -- suppress messages during run (header,feedback,errors,discards,partitions) sqlldr niop_adm/niop@102_db control=tt.ctl data=3001_1.txt rows=300 bindsize=2560000 readsize=3000000 direct=true silent=header,feedback sqlldr niop_adm/niop@102_db control=tt.ctl data=3001_1.txt rows=300 bindsize=2560000 readsize=3000000 direct=true silent=header,feedback errors=10000 -- sqlldr进行远程数据入库的时候,速度可以达到5M/S Table TTT: 5473 Rows successfully loaded. 0 Rows not loaded due to data errors. 0 Rows not loaded because all WHEN clauses were failed. 0 Rows not loaded because all fields were null. Bind array size not used in direct path. Column array rows : 300 Stream buffer bytes: 256000 Read buffer bytes: 3000000 Total logical records skipped: 0 Total logical records read: 5473 Total logical records rejected: 0 Total logical records discarded: 0 Total stream buffers loaded by SQL*Loader main thread: 20 Total stream buffers loaded by SQL*Loader load thread: 17 Run began on Tue Dec 14 13:47:38 2010 Run ended on Tue Dec 14 13:47:39 2010 Elapsed time was: 00:00:00.91 CPU time was: 00:00:00.09 -- 12-15 进行多线程调用的时候,如果函数参数有多个,可以将其组织成一个结构体 -- 12-16 UE中可以把多行作为一个块进行查找,替换操作 cat stop.sh #!/bin/sh #查找指定进程的pid pid=`ps -ef|grep -w 'divfile'|grep -v grep|awk '{print $2}'` #若此进程不存在,退出。 if [ -z "${pid}" ] then echo "process divfile doesn't exist" exit else echo "has stop process divfile" fi ########## pid=`ps -ef|grep -w 'datastore'|grep -v grep|awk '{print $2}'` #若此进程不存在,退出。 if [ -z "${pid}" ] then echo "process datastore doesn't exist" exit else echo "has stop process datastore" fi -- 12-17 chmod -R g-r root chmod -R o-r root select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; -- --1.增加数据文件 ALTER TABLESPACE USERS ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; --2.手动增加数据文件尺寸 ALTER DATABASE DATAFILE '/opt/oracle/oradata/orcl/users01.dbf' RESIZE 2048M; --Done in 111.031 seconds -- 3.设定数据文件自动扩展 ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M; --4设定后查看表空间信息 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; -- 12-18 sqlldr相对于oci程序的优点:可以过滤出错误数据 wait用来等待子进程退出 #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <iostream.h> int main() { for(int i = 0; i < 3; i++) { pid_t pid = fork(); if(pid == 0) { cout << "pid= " << getpid() << "i = " << i << endl; if(i == 2) sleep(10); return pid; } } pid_t cp; int it; for(int i = 0; i < 3; i++) { cp = wait(&it); cout << "chpid= " << cp << endl; } cout << "main exit" << endl; return 0; }