wordpress中常用sql语句

开启所有评论
UPDATE wp_posts
SET comment_status = ‘open’
WHERE post_status = ‘publish’;
关闭旧文章的留言
UPDATE wp_posts
SET comment_status = ‘closed’
WHERE post_date < '2009-01-01' AND post_status = 'publish' 删除所有的垃圾评论
DELETE FROM wp_comments
WHERE comment_approved = ‘spam’
删除所有文章修订版本(Revisions)以及它们的Meta数据
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = ‘revision’
清理wp_postmeta表
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_old_slug’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_revision-control’;
DELETE FROM wp_postmeta WHERE meta_value = ‘{{unknown}}’;
写成shell脚本,添加表优化,可以使用crontab定时调用处理
执行shell

mysql解锁

一、查看进程运行情况(会话1)
mysql> select id,user,host,db,command,time,state from processlist a;
+—-+——+—————–+——————–+———+——+———–
+
| id | user | host | db | command | time | state
|
+—-+——+—————–+——————–+———+——+———–
+
| 40 | root | localhost:14046 | information_schema | Query | 0 | executing
|
| 39 | root | localhost:13992 | chf | Sleep | 251 |
|
| 38 | root | localhost:13991 | chf | Sleep | 251 |
|
+—-+——+—————–+——————–+———+——+———–
+
3 rows in set (0.00 sec)
二、构造表被锁现象
1)锁住表(会话1)
mysql>LOCK TABLES chf.disc02 READ;或者–LOCK TABLES chf.disc02 WRITE;
2)执行dml操作(会话2)
mysql>delete from chf.disc02 limit 1;–会话处于卡死状态
3)查询进程运行情况(会话1)
mysql> select id,user,host,db,command,time,state from processlist a;
+—-+——+—————–+——————–+———+——+———–
+
| id | user | host | db | command | time | state
|
+—-+——+—————–+——————–+———+——+———–
+
| 41 | root | localhost:14358 | chf | Query | 5 | Locked
|
| 40 | root | localhost:14046 | information_schema | Query | 0 | executing
|
| 39 | root | localhost:13992 | chf | Sleep | 343 |
|
| 38 | root | localhost:13991 | chf | Sleep | 343 |
|
+—-+——+—————–+——————–+———+——+———–
+
4 rows in set (0.01 sec)
说明:发现进程id为41的进程状态为Locked
三、解锁操作
1)删掉被锁进程(会话1)
mysql> kill 41;
出现现象(会话2)
ERROR 2013 (HY000): Lost connection to MySQL server during query
2)查看进程(会话1)
mysql> select id,user,host,db,command,time,state from processlist a;
+—-+——+—————–+——————–+———+——+———–
+
| id | user | host | db | command | time | state
|
+—-+——+—————–+——————–+———+——+———–
+
| 40 | root | localhost:14046 | information_schema | Query | 0 | executing
|
| 39 | root | localhost:13992 | chf | Sleep | 298 |
|
| 38 | root | localhost:13991 | chf | Sleep | 298 |
|
+—-+——+—————–+——————–+———+——+———–
+
3 rows in set (0.01 sec)
四、批量解锁
mysql> select concat(‘kill ‘,id,’;’) kill_process from processlist a where a.state=’Locked’;
+————–+
| kill_process |
+————–+
| kill 43; |
| kill 42; |
+————–+
2 rows in set (0.01 sec)
Note:
1)可以使用show processlist查看当前用户连接
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。show processlist;只列出前100条,如果想全列出请使用show full processlist;
2)在构造锁的会话中,使用unlock tables;也可以解锁

ASMCMD常用命令

1、显示指定的ASM目录下ASM文件占用的所有磁盘空间
du
2、列出ASM目录下的内容及其属性
ls -ls
3、查看当前路径
pwd
4、打开目录
cd ../DATA
5、列出当前ASM客户端的信息
lsct
6、列出所有磁盘组及其属性
lsdg
7、列出数据文件信息
lsof
8、列出盘的信息
lsdsk
Note:大小写敏感

ASM简单管理(1)

一、ASM磁盘和磁盘组管理
1、创建磁盘组
create diskgroup DG2 EXTERNAL REDUNDANCY DISK ‘ORCL:A1’;
Note:1)磁盘名称需要大写
2)磁盘名称使用V$asm_disk.path
2、磁盘组中添加磁盘
alter diskgroup dg2 add disk ‘ORCL:A2’;
Note:磁盘名称使用V$asm_disk.path
3、磁盘组中删除磁盘
alter diskgroup dg2 drop disk ‘a1’;
Note:磁盘名称使用的是V$asm_disk.name
4、删除磁盘组
drop diskgroup dg2 including contents;
二、ASM相关视图
1、查看是否有数据库实例连接上ASM实例
select instance_name,db_name,status from v$asm_client;
2、记录BALANCE操作
select operation,state,power,actual,sofar from v$asm_operation;
3、ASM DISK信息
select path, state, total_mb, free_mb from v$asm_disk;
4、ASM DISKGROUP信息
select name,state,type,total_mb,free_mb from v$asm_diskgroup;
三、ASM和表空间管理
1、ASM中创建表空间
create tablespace xff datafile ‘+DG2’ SIZE 100M;
2、ASM表空间中添加数据文件
alter tablespace xff add datafile ‘+dg2’ size 10m;
3、ASM表空间中删除数据文件
alter tablespace xff drop datafile ‘+DG2/xff/datafile/xff.257.747278679’;
或者
alter tablespace xff drop datafile 7;
4、删除表空间
drop tablespace xff including contents;

防火墙和selinux的启动和关闭

1、防火墙简单管理
查看状态:service iptables status
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
2、selinux简单管理
1)关闭selinux
#vi /etc/selinux/config
SELINUX=enforcing
改为
SELINUX=disabled
#setenforce 0
2)开启selinux
#vi /etc/selinux/config
SELINUX=disabled
改为
SELINUX=enforcing
#setenforce 1

CentOS 5建立本地源

1、mkdir /media/CentOS
2、mount /dev/cdrom /media/CentOS
3、查看CentOS-Media.repo中内容
[c5-media]
name=CentOS-$releasever – Media
baseurl=file:///media/ CentOS
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta
3、我们只需编辑下bashurl ,将自己的光盘路径写入
4、可以使用 yum –disablerepo=\* –enablerepo=c5-media [command]
如:yum –disablerepo =* –enablerepo=c5-media install gcc 安装

配置Oracle ASM磁盘

1、确定Linux版本
uname -a
Note:我的系统是redhat 5.5
2、下载asm的lib包
http://www.oracle.com/technetwork/topics/linux/index-101839.html
根据Linux版本,选择合适版本下载(redhat 5.5 32位系统)
oracleasm-support-2.1.4-1.el5.i386.rpm
oracleasm-2.6.18-194.26.1.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
3、安装ams包(root)
rpm -Uvh oracleasm-support-2.1.4-1.el5.i386.rpm
rpm -Uvh oracleasm-2.6.18-194.26.1.el5-2.0.5-1.el5.i686.rpm
rpm -Uvh oracleasmlib-2.0.4-1.el5.i386.rpm
4、配置ASM的库文件(root)
/etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [ OK ]
Creating /dev/oracleasm mount point: [ OK ]
Loading module “oracleasm”: [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks: [ OK ]
Note:需要实现创建oracle用户和dba组(一般安装oracle的系统上都会创建)
5、创建ASM磁盘(root)
/etc/init.d/oracleasm createdisk XFF1 /dev/sdb1
/etc/init.d/oracleasm createdisk XFF2 /dev/sdc1
6、配置CSS(root)
$ORACLE_HOME/bin/localconfig add

fstab文件的作用

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过”mount /directoryname”命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。
下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec – 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:
对于IDE设备一般描述为/dev/hdaXN,X是IDE设备通道 (a, b, or c),N代表分区号;
对于SCSI设备一描述为/dev/sdaXN;
对于NFS情况,格式一般为host:dir,例如:knuth.aeb.nl:/;
对于procfs,使用proc来定义。
fs_file – 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。
fs_type – 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。
fs_dump – 该选项被”dump”命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0
fs_pass – 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统”/”对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0
fs_options – 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用”defaults”就可以满足需要。其他常见的选项包括:
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统
# 示例文件
# /etc/fstab
/dev/hda9 swap swap defaults 0 0
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 1
/dev/hda6 /usr ext2 defaults 1 1

Liunx添加硬盘

新加一块SCSI硬盘,需要将其分区挂载到Linux系统上:
#fdisk /dev/sdb
进入fdisk模式:
Command (m for help):p –查看新硬盘的分区
Command (m for help):n –创建新分区
可以用
m命令来看fdisk命令的内部命令;
n命令创建一个新分区;
d命令删除一个存在的分区;
p命令显示分区列表;
t命令修改分区的类型ID号;
l命令显示分区ID号的列表;
a命令指定启动分区;
w命令是将对分区表的修改存盘让它发生作用。
Command action
e extended –输入e为创建扩展分区
p primary partition (1-4) –输入p为创建主分区,这里我们选择p
Partion number(1-4):1 –第一个扩展分区,按你需求可以最多分4个主分区
First Cylinder(1-1014,default 1): 1 –第一个主分区起始的磁盘块数
Last cylindet or +siza or +sizeM or +sizeK: +1024MB –可以是以MB为单位的数字或者以磁盘块数,这里我们输入+1024MB表示分区大小为1G。
这样我们就创建完一个分区,如果要创建更多分区可以照上面的步骤继续创建。
创建完后用w保存分区。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
这样就分区完,我们还要进行格式化
#mkfs -t ext3 -c /dev/sdb1 –如果有多个分区,则分区修改为sdb2这样格式化完后我们需要进行挂载分区
#parted -l –查看分区情况
#mkdir www –创建/www目录,我们将把新的分区挂到www下
#mount /dev/sdb1 /www –将/dev/sdb1挂载到/www
# df –用df命令进行查看
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 3771316 1388956 2190788 39% /
/dev/sda1 101089 9463 86407 10% /boot
none 62988 0 62988 0% /dev/shm
/dev/sdb1 485906 8239 452580 2% /www –看到了,这就是我们刚才新挂载的分区
到这里我们工作已接近尾声了,不过我们如果这样就结束的话,我们每次重新启动服务器后都要进行手工挂载,这样很麻烦,我们需要修改/etc/fstab文件来进行自动挂载。
#vi /etc/fstab
在文件的末尾填加如下内容:
/dev/sdb1 /www ext3 defaults 1 2
如有多个分区可修改sdb1和/www,修改完后保存,重启系统,或者mount /dev/sdb1 /www 先挂载使用

redhat 4 安装 Oracle 10g

必须安装包
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
setarch-1.6-1
用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
创建文件夹
mkdir -p /u01/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
修改系统参数
vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
vi /etc/profile
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
设置环境变量
vi ~/.bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=orcl
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
PATH=$PATH:$ORACLE_HOME/bin
export PATH NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID