`
wankunde
  • 浏览: 158521 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

苏州工作学习记录

阅读更多

开发环境操作记录
1. 创建用户
useradd -s /bin/sh  -d /oims -g dba -G dba oims -- 这里用户主组应为oinstall

uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

修改语言编码
LANG设置为en_US而不是en_US.UTF-8

=============================
开通FTP用户,上传文件 ftpuser1 ftpuser1

useradd -d /data/ftpdata ftpuser1
passwd ftpuser1
usermod -s /sbin/nologin ftpuser1

启用 /etc/vsftpd/vsftpd.conf文件中的选项
chroot_list_enable=YES  //限制访问自身目录
chroot_list_file=/etc/vsftpd/chroot_list
在/etc/vsftpd/chroot_list文件中添加受限的用户名

重启ftp服务
====================================
ftp 命令中mget和get区别:mget可以传送多个文件
======================================================================
ORACLE
1.回收表空间中空闲空间
a. SELECT * FROM v$datafile t;
-- 根据数据文件确定文件序号,表空间,文件名
b.
SELECT * FROM dba_extents t
WHERE  t.tablespace_name='TS_BANCS_IS'
/* WHERE  t.FILE_ID=2;*/
ORDER BY t.BLOCK_ID DESC
/*
根据表空间或者数据文件序号,查找段所使用到的BLOCK_ID,
这个blck是oracle在数据文件中分配的,所以不能进行回收
*/
c.SELECT 4114057 *8/1024||'M' FROM dual
/*
根据最大的block_id计算出分配了的最大空间,可以回收在最大空间之外的空间了
*/
d. ALTER DATABASE DATAFILE '/data/oradata/oims/undotbs01.dbf' RESIZE  4600M;

oracle net trace
1.trace种类:sql trace ,session trace,net trace
======================================================================

Linux
查看Linux机器位数
file /bin/ls
file /sbin/init
查看系统共享内存限制
ipcs -lm

linux环境ORACLE的sqlplus乱码解决方案
1. ctrl+backspace (常用)
2. 设置环境变量
在bash下:$ stty erase $^
在csh下: $stty

======================================================================
Linux 系统监控

IPC 命令

/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间)
  从而使得这些进程可以相互通信。
  在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使
  用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。
  使用消息队列时,一个进程要向队列中写入消息,这要引起从用户地址空间向内核地址空间的一次复制,
  同样一个进程进行消息读取时也要进行一次复制。共享内存的优点是完全省去了这些操作。
  共享内存会映射到进程的虚拟地址空间,进程对其可以直接访问,避免了数据的复制过程。
  因此,共享内存是GNU/Linux现在可用的最快速的IPC机制。
  进程退出时会自动和已经挂接的共享内存区段分离,但是仍建议当进程不再使用共享区段时
  调用shmdt来卸载区段。
  注意,当一个进程分支出父进程和子进程时,父进程先前创建的所有共享内存区段都会被子进程继承。
  如果区段已经做了删除标记(在前面以IPC——RMID指令调用shmctl),而当前挂接数已经变为0,
  这个区段就会被移除。
*/

top 命令

top - 19:31:13 up 26 days,  3:33,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 132 total,   1 running, 131 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1928508k total,  1813172k used,   115336k free,    53348k buffers
Swap:  8191992k total,    26724k used,  8165268k free,  1121232k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                      
    1 root      15   0 10348  684  576 S  0.0  0.0   0:05.09 init                                                          
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                   
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0  

- 19:31:13 当前时间
up 1:22 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

Tasks: 132 total 进程总数
1 running 正在运行的进程数
131 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数

Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si


Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。

进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

======================================================================
gcc 整理
-c 选项 编译,汇编到目标代码,不进行链接

@ 不回显后面的命令

ar压库命令
ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername][count] archive files ...
{dmpqrtx} 有且必须一个选项
[abcfilNoPsSuvV] 可有选项
实例: ar rv libtest.a hello.o hello1.o

gdb 调试工具
加断点 b 文件名:行号
停用断点
delete [breakpoints] [range...]
disable [breakpoints] [range...]

运行 r 参数
打印某个值 p 变量名
单步 n
进入函数 s
继续执行 c
结束进程 k
退出 q

ptpye 变量名/结构体
info break
list
bt 查看堆栈
finish 推出函数

源代码
查看源代码路径
show directories
添加源代码路径
diectory [XXX]

多线程调试
info threads
thread [ID] 切换调试线程
break [thread_test.c:123] thread all 所有线程下设置断点
thread apply ID1 ID2 command 让现场ID1,ID2执行command
set scheduler-locking off|on|step on设置为只有当前程序会执行
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics