2024/01/20

구글 Blogger, 작성하신 블로그(제목: 'http://.blogspot.com/')가 삭제되었습니다


구글... 도대체 뭐하는 짓인지......??

뭐 내용상으로는,. 누군가 Spam 이라며 신고했다는 건데, 스팸 사이트도 아니고 그럴 내용도 없다. 누군가 악의적으로 신고한것인지 ? 아니면 구글 시스템 오류인건지?

특이한건,. 같은 구글 계정으로 생성된 블로그 3개가 동시에 같은 시간에 정지되었고(내용이 없는 블로그도 삭제됨 > 내용이 없는데 어떻게 스팸? 어이 없음), 해제 요청 후 약 10분만에 3개 모두 복구되었음.

이런식이면, 안정적으로 어떻게 이용할수 있겠는가...??


2024. 1. 18. 오전 5:23

안녕하세요, 아시고 계신 바와 같이 Blogger 커뮤니티 가이드(https://blogger.com/go/contentpolicy)에는 Blogger에서 허용되는 콘텐츠와 허용되지 않는 콘텐츠에 대한 설명이 안내되어 있습니다. 작성하신 블로그(제목: 'http://bitsyrup.blogspot.com/')에 대한 검토를 요청하는 신고가 접수되었습니다. 블로그가 Blogger 커뮤니티 가이드를 위반한 것으로 판단되어 블로그 독자가 해당 URL(http://bitsyrup.blogspot.com/)을 볼 수 없도록 조치했습니다. 블로그가 삭제된 이유 Google SPAM 정책을 위반한 콘텐츠입니다. 자세한 내용은 이메일에 링크된 커뮤니티 가이드 페이지에서 확인하세요. 블로그 콘텐츠가 Google 정책 기준에 부합하지 않는다고 판단되면 해당 블로그를 더 이상 일반에게 공개하지 않습니다. Google에서 실수했다고 생각되는 경우 https://www.blogger.com/unlock-blog.g?lockedBlogID=4970730075099011433에서 검토를 요청하시면 다시 확인하겠습니다. 감사합니다. Blogger팀

"

2024. 1월 18일 오전 10:29
"
안녕하세요, Blogger 커뮤니티 가이드(https://blogger.com/go/contentpolicy)에 따라, 게시하신 블로그에 대한 재검토를 실시했습니다. 검토 결과에 따라 해당 블로그는 다시 복구되었으며 http://bitsyrup.blogspot.com/에서 블로그에 액세스할 수 있습니다. 양해해 주셔서 감사합니다. 안녕히 계세요. Blogger팀

"


2023/11/28

PostgreSQL dblink 기본 사용법

PostgreSQL 에서 처음 dblink 를 사용하는 경우에는 dblink 라이브러리를 확장모듈에 로딩을 해놔야 함.  안그러면 알수 없는 함수라는 오류가 표시됨.


-- dblink 로딩 (최초1회 > PgAdmin 에서 해당 DB의 확장모듈에 표시됨)
create extension dblink;


-- DB 연결
select dblink_connect('Test연결1', 'hostaddr=127.0.0.1 port=5432 dbname=test user=test1 password=pwd1');


-- 쿼리
SELECT * FROM 
    dblink('Test연결1', 
   'SELECT "Seq" FROM dbo."Table1" WHERE "CreateDate" < now() - INTERVAL ''2 year''') as t1("Seq" integer) ;


-- DB 연결 해제
select dblink_disconnect('Test연결1');



dblink 의 단점일수도 있고 장점일수도 있긴한데,. 가져올려는 테이블 컬럼을 명시적으로 지정해줘야 하고, row를 임시 저장하는 개체(테이블)에도 명시적을 컬럼 타입을 지정해줘야 함.

컬럼 갯수가 몇개 안되면 상관없는데, 컬럼이 많으면 이것 또한 상당한 노가다 작업이 필요해 진다. 그래서 차라리 각기 호출하여 웹/백엔드 코드단에서 처리하는게 더 편할수도 있음..

그런점에서 본다면,. 확실히 Microsoft SQL Server 가 편하긴 함.




2023/07/26

PostgreSQL 백업 및 복원 예 (일반적인 논리 백업)

■ 백업

명령행 실행시 패스워드 없이 할려면, pgpass.conf 에 작업 계정에 대한 인증 설정이 미리 되어 있어야 함.


(원격)

pg_dump --host localhost --port 5432 --username "postgres" --password "" --dbname "test" --format custom --blobs --verbose --file "test.backup"


(로컬)

pg_dump --username "postgres" --no-password --dbname "test" --blobs --verbose --format=c --file "test.backup"



■ 복원

유의) 복원 대상에 세션이 물려 있는 경우에는, 복원시 대상 개체의 drop, create 쿼리 실행 오류가 발생하고, 그걸 무시하고 계속 진행하는 경우 기존 테이블에 데이터가 중복 복원 추가됨. 그러므로, 세션이 일체 물려 있지 않은 상태에서 복원 작업을 진행해야 함.

SELECT pg_terminate_backend(pid) FROM pg_stat_activity  WHERE pid <> pg_backend_pid() AND datname = 'test';


(DB 복원으로 할 경우. 대상 이름이 다른 경우 미리 생성후)

pg_restore --clean --create --no-privileges --no-owner --username "postgres" --dbname "test_new" --disable-triggers --format=c --verbose "test.backup"

--clean --create 파라미터를 주는 경우 백업에 있는 DB명으로 동일 복원. 하지만 복원 대상과 동일 DB 명을 주면 에러를 뿌림. 

pg_restore 내부 로직이 문제인지 모르겠으나,.

test 를 삭제후 test 에 복원하려면, 다른 DB명으로 복원 지정(생성)후 하면, 원래 test 를 삭제/복원. 동일하게 test 를 지정하면 DB drop,create 오류나고, 생성 안해두면 DB 없다고 또 복원 안됨..;;


(다른 DB에 단순 복원으로 할 경우. 대상 이름이 다른 경우 미리 생성후)

pg_restore --no-privileges --no-owner --username "postgres" --dbname "test_new" --format=c --verbose "test.backup"

테이블의 경우 개체가 이미 있는 경우, 거기에 레코드 추가 insert 방식이므로, 데이터 중복 발생 유의.


(대상 DB에, 대상 테이블 복원으로 할 경우)

pg_restore --clean --no-privileges --no-owner --username "postgres" --dbname "test_new" --table "table1" --disable-triggers --format=c --verbose "test.backup"

--clean 파라미터 주면, 대상 개체를 먼저 삭제후 복원. 파라미터 없는 상태에서 중복 이름 있는 경우, 데이터 중복 복원해 버리므로 유의 필요.






가장 많이 본 글