2014年11月7日 星期五

重設 owncloud 密碼

OwnCloud 密碼忘了..
1先找出 owncloud.db 的存方地.
sudo find / -name "owncloud.db"
/var/www/owncloud/data/owncloud.db
2.先產生一組新的密碼
echo -n "1234567" | sha1sum
201231asdfafwerq913132412341412341  <=等下要UPDATE 密碼用的

3.進到1 的目錄中
cd /var/www/owncloud/data
4.進sqlite
sqlite3 owncloud.db
5. 先看看 owncloud 中 oc_users table 欄位的名稱
pragma table_info(people);
回傳
uid|varchar(64)||||
displayname|varchar(64)||
password|varchar(255)|||

6. Update使用者密碼.
update oc_users set password='201231asdfafwerq913132412341412341' where uid='user id'
OK

2014年10月28日 星期二

AquaData Studio ORACLE OCI 8.1i

AquaData Studio 中如果要去使用 OCI 方式去連ORACLE 8I DB時他會出現.一些錯誤.
說目前 ADS 是使用 10 版的如要 請自己修改ORACLE 版本.
以下網址供參考.

https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation12/page/Oracle-JDBC-Drivers/Oracle-JDBC-Drivers#oracle_jdbc_driver_location_8i

STEP1: 刪除 ADS 原本的ORACLE DRIVER. 我沒作.我用的是舊版的.
STEP2: 由 C:\oracle\ora81\jdbc\lib  COPY 
nls_charset12.zip classes12.zip到
 C:\Program Files\Aqua Data Studio 7.5 - 32bit\lib\drivers 目錄下.
並修改副檔名 .ZIP to .jar
STEP 3: 進ADS ->HELP-> about -> JDBC Driver 可看到 ..oracle.jdbc.driver.OracleDriver =1.0
OK


2014年7月21日 星期一

使用ORACLE 10I 以上,來解 BOM 表與求需求量

TIPTOP ERP ORACLE BOM QTY

/*正解*/

select bmb01, bmb03, level, bmb06,
    LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
    LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
    str_mult(sys_connect_by_path(bmb06, '*')) quate
 from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01

/*或是使用 olap 內建的FUNCTION, 因為我的環境沒安裝這東西所以無法使用*/
select bmb01, bmb03, level, bmb06,
    LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
    LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
    dbms_aw.eval_number(ltrim(sys_connect_by_path(bmb06, '*'), '*')) quate
 from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01



CREATE OR REPLACE FUNCTION GWH.str_mult(p_str IN VARCHAR2) RETURN NUMBER
AS
    l_str VARCHAR2(1000):=p_str||'*';
    l_n   NUMBER;
    l_data NUMBER:=1;
BEGIN
    IF instr(l_str,'*')=1 THEN
       l_str:=SUBSTR(l_str,2);
    END IF;
    LOOP
          l_n:=instr(l_str,'*');
        EXIT WHEN (NVL(l_n,0)=0);
        l_data:=l_data*TO_NUMBER(SUBSTR(l_str,1,l_n-1));
        l_str:=SUBSTR(l_str,l_n+1);
    END LOOP;
    RETURN l_data;
END;

2014年5月27日 星期二

informix table lock

select unique
 dbsname db,
 tabname ,
--zt02,
 case
 when type="S" then "shared lock"
 when type="IS" then "intent shared lock"
 when type="SIX" then "shared intent excl lock"
 when type="XS" then "shared key value by RR"
 when type="IX" then "intent excl lock"
 when type="X" then "exclusive lock"
 when type="XR" then "excl key value by RR"
 when type="U" then "update lock"
 when type="B" then "byte lock"
 else
 "unknown lock type"
 end lock_type,
 lpad(owner,5) ses_id,
 lpad(waiter,5) wait_id
 from sysmaster:syslocks
--  left outer join ds:zt_file on zt01=tabname
 where tabname != 'sysdatabases'

找出 wait_id 有值的.代表他在等某一個東西 release.

nstat -g ses | grep  88999  (note ses_id)
find session id to query processs id  再去KILL 他.




2014年5月6日 星期二

informix table extent 相關

Informix DB:
create table 時 informix 會先allocate 一個空間給這個TABLE 使用. 如果空間不夠時. informix 會再allocate 一個空間來使用.如果這二個空間剛好都是連在一起,在Informix 中我們叫他為一個 extent,資料庫長時間使用下有可能使得TABLE的EXTENT 值變大.大過一定值(200以上?) 會出現錯誤.這時我們就要重新規劃了.

先用以下命令去找.所有資料庫table extent與他的SIZE

select
     dbsname,
     tabname,partnum,
     count(*) num_of_extents,
     sum(pe_size) total_size
from
     systabnames, sysptnext
where
       partnum = pe_partnum
  and  partnum  > 99
  and  dbsname <> "sysmaster"
  and  dbsname <> "sysutils"
  and  tabname <> "TBLSpace"
group by 1,2,3
order by 1,5 desc ;

我查出我的MYTABLE001 他空用有201個EXTENT 共 771400 KB ,
這時我要先建一個TABLE 內容與原TABLE 名稱多加個_TEMP 並同時給他初始大小與增大大小(KB)

CREATE TABLE tiptop.mytable001_temp (
    imk01  CHAR(20),
    imk02  CHAR(10),
    imk03  CHAR(10),
    imk09  DECIMAL(15,3)
    )
EXTENT SIZE 921600 NEXT SIZE 61440
LOCK MODE PAGE

之後再把資料insert 到Temp table
insert into mytable001_temp select * from mytable001
再把原TABLE DROP, 再把temp table rename 到原table
drop table mytable001
RENAME TABLE mytable001_temp  TO mytable001
經過這次的轉換後.沒問題了.
注意.要先把原來的 trigger, index 相關語法備份下來喔

2014年4月29日 星期二

2014年1月7日 星期二

DD-WRT 用Telnet 進去 清空所有設定.

參考:
http://www.dd-wrt.com/wiki/index.php/Factory_Defaults#From_the_Command_Line_.28Telnet_or_SSH_or_Web_GUI.29
因為restore 錯的設定所以WEB 起不來.只好回復成最初值.
用telnet 登入 ddwrt

mtd erase nvram;
reboot

之後就可以用 root/admin 來登入系統了.