2010年5月29日 星期六

重新計算資料庫已使用空間

看資料庫已使用空間時(Sybase Central->OS->Database->DB->Segment,發現已使用空間為”負值”,此為計算空間發生錯誤,重新計算空間即可解決。

開啟isql,執行:
dbcc usedextents(dbname,0,1,1)

執行此指令需有sybase_ts_role的權限
Sybase Central->Logins->使用者(右鍵)->Properties->Roles->加上sybase_ts_role

2010年5月21日 星期五

出現has run out of LOCKS錯誤訊息

錯誤訊息:ASE has run out of LOCKS. Re-run your command when there are fewer active users, or contact a user with System Administrator (SA) role to reconfigure ASE with more LOCKS

解決方式:調整number of locks參數即可。
Sybase Central->DB右鍵->Properties->Configuration->number of locks

2010年5月20日 星期四

2010年5月18日 星期二

MySQL開機時讀取my.cnf的順序

我在以下兩個地方都有my.cnf檔

/usr/local/etc/my.cnf
/var/db/mysql/my.cnf

在啟動MySQL時,出現

100518 18:12:02 mysqld_safe WARNING: Found two instances of my.cnf -
/usr/local/etc/my.cnf and
/var/db/mysql/my.cnf
IGNORING /var/db/mysql/my.cnf
100518 18:12:02 mysqld_safe Logging to '/var/db/mysql/test.localhost.com.tw.err'.
100518 18:12:02 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql

由此可知讀my.cnf的順序為
1. /usr/local/etc 
2. /var/db/mysql


在ssh下
/usr/local/bin/mysql --verbose --help

會出現下面讀my.cnf的順序

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf

2010年5月11日 星期二

移動資料夾

將abc資料夾,移至/var/db/mysql下,名字為abc_new
mv abc /var/db/mysql/abc_new

參考資料:http://linux.vbird.org/linux_basic/0220filemanager.php#mv

測試是否可連上某台主機

測試IP為10.16.10.10的這台主機的MySQL服務是否有在服務(MySQL Port用預設的3306)
1.進入ssh
2.telnet 10.16.10.10 3306

參考資料:http://blog.udn.com/luckyhoo/643920

2010年5月6日 星期四

用排程讓系統自動建下個月的table

store procedure  :
DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_u_nextmonth_table`(OUT p char(15))
BEGIN

  Declare MM char(6);
  SELECT DATE_FORMAT(DATE_ADD(now(),INTERVAL 1 MONTH),'%Y%m') INTO MM; /* search next month -- YYYYMM */
  set p = concat('nexttable_',MM); /* 合併字串 */

END $$

DELIMITER ;

===================================================


DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_u_create_nexttable`()
BEGIN

  /* call store procedure */
  CALL sp_u_nextmonth_table(@ym);

    SET @dyn_sql = concat('CREATE TABLE  `testDB`.',@ym,'( `id` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT '''',',
          '`areaid` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT '''',',
          'KEY `idpk` (`id`)',
          ') ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci PACK_KEYS=1' );
     /* select @dyn_sql; */

     PREPARE s1 from @dyn_sql;

     EXECUTE s1;

END $$

DELIMITER ;


crontab : (mysqlcrontab.sh)
/usr/local/bin/mysql -uroot -pxxxx -e "CALL TESTDB.sp_u_create_nexttable()"

2010年5月3日 星期一

sftp上傳時出現無權限

sftp> put *
出現:
Uploading testabc.sh to /home/testacc/testdata/testabc.sh

Couldn't get handle: Permission denied
此表示上傳的資料夾無此人的權限
在目的端下
> ls -al
可看此資料夾的擁有者不是testacc,將此資料夾的擁有者改變即可
chown -R testacc: testacc testdata

改變權限

chmod 755 xxx.sh

參考資料: http://linux.vbird.org/linux_basic/0210filepermission.php#chmod

2010年5月1日 星期六

smarty 出現error

出現錯誤訊息:Fatal error: Smarty error: unable to write to $compile_dir '/home2/lab/member/public_html/template'. Be sure $compile_dir is writable by the web server user. in/home2/lab/member/public_html/class/Smarty/Smarty.class.php on line 1091


此為template此資料夾無寫入和執行權限的關係,只要將此資料夾的權限變成 777 即可。