반응형

공유 테스트

반응형

1. 우선 백업할 DataBase 검색 쿼리

 

    SELECT * FROM master.dbo.sysdatabases 

   MSSQL 에 생성된 모든 데이터 베이스 검색을 할 수가 있음

 

2. 백업 쿼리 작성 

   
SELECT 
'backup database ' + name +' to disk= ''C:\DataBaseBackUp\' + name +'.bak'''   
FROM master.dbo.sysdatabases
where name like '%[DataBaseName]%'

 

원하는 데이터베이스 명을 조건에 입력 하고

데이터베이스 백업 파일을 C 드라이브에 DataBaseBackUp 폴더 경로로 잡아줌(폴더가 생성되어있어야함)

 

 

3. 복구 쿼리 (1) 백업한 DataBase 를 새로운 MSSQL 서버에 복구할 경우

3.1

SELECT 

'RESTORE FILELISTONLY FROM DISK = ''C:\DataBaseBackUp\' + name +'.bak'''
FROM master.dbo.sysdatabases
where name like '%[DataBaseName]%'

 

RESTORE FILELISTONLY FROM DISK = ''C:\DataBaseBackUp\' + [DataBaseName]+'.bak'''

 

생성한 쿼리 조회 시 논리적/물리적인 데이터 행을 조회 할수 있습니다.

논리적 이름을 mdf/ldf 를 확인 할수 있으며 

 

3.2

SELECT 
'RESTORE DATABASE ' + name +
' FROM DISK = ''C:\DataBaseBackUp\' + [DataBaseName] +'.bak''
 with move '''+ name + ''' to ''C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\' + name +'.mdf'' 
  ,move ''' + name + '_log'' to ''C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\' + name +'.ldf'''
FROM master.dbo.sysdatabases
where name like '%[DataBaseName]%'

 

RESTORE 진행
   RESTORE DATABASE [name]
      FROM DISK = 'C:\DataBaseBackUp\[name].bak'
   with move '[LogicalName mdf 파일명]' to '[실제DB경로]C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\[name].mdf'
         move '[LogicalName ldf 파일명]' to '[실제DB경로]C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\[name].ldf'

 

 

4. 복구 쿼리 (2) 백업한 DataBase를 기존 MSSQL 서버에 복구할경우

 

SELECT 
'RESTORE DATABASE ' + [DataBaseName]+' FROM DISK = ''C:\DataBaseBackUp\' + name +'.bak'' with replace'
FROM master.dbo.sysdatabases
where name like '%[DataBaseName]%'

 

with replace 의 의미는 덮어쓴다라는 의미로 생각하면 될거같음

 

 

5. 복구 시 오류 발생 경우 [데이터베이스가 사용중인 경우]

속성 클릭 

속성 -> 옵션 -> 상태 ->액세스 제한

MULTI_USER ---> SINGLE_USER 변경 후 복구 쿼리 실행

 

복구 완료 후 SINGLE_USER 변경된걸 MULTI_USER 로 다시 변경 하면 끝

'DataBase > Mssql' 카테고리의 다른 글

Mysql DB 복구 방법  (0) 2019.04.17
maria insert 시 중복 키 업데이트  (0) 2018.08.05
반응형

<%@ page contentType="text/html;charset=UTF-8" language="java" trimDirectiveWhitespaces="true"%>


반응형

Attribute Starts With Selector [name^=”value”]

value 시작하는 name 속성을 가진 모든 <input> 요소 가져옴

Attribute Starts With Selector [name$=”value”]

value 끝나는 name 속성을 가진 모든 <input> 요소 가져옴

Attribute Starts With Selector [name*=”value”]

value 이라는 단어가 포함 된 name 속성을 가진 모든 <input> 요소를 선택하십시오.

Attribute Starts With Selector [name~=”value”]

특정 단어 value를 포함하는 name 속성을 가진 모든 <input> 요소 가져옴

반응형

손상된 DB 복구 방법

 

[준비]

1. 기존 DB 폴더 백업 

2. mysql utilities 파일 다운  (https://downloads.mysql.com/archives/utilities/)

 

[실행]

 

utilities 실행 하면 콘솔창

mysqlfrm --diagnostic C:\Users\[frm 파일]

[frm 파일 경로 설정]

복원할 table의 create query 문 생성

 

복원할 table 의 create query 문 뽑은다음 

 

기존 데이터베이스명 동일 하게 만든 후 

create query 문으로 테이블 생성

 

[경로]

C:\ProgramData\MySQL\MySQL Server 5.6\data

생성 데이터베이스 폴더에 들어간 테이블 확인

 

이후 DB tool(전 heidisql 사용) 

테이블의 테이블 스페이스 처리 

ALTER TABLE [TableName] DISCARD TABLESPACE; 

 

기존 백업한 ibd 파일을 ---> C:\ProgramData\MySQL\MySQL Server 5.6\data

생성 데이터베이스 폴더에 복사 붙여넣기 후

테이블의 테이블 스페이스 처리 

ALTER TABLE [TableName] IMPORT TABLESPACE;

 

하면 복원 됨

 

 



'DataBase > Mssql' 카테고리의 다른 글

MSSQL DB 백업 및 복구 쿼리  (0) 2019.07.29
maria insert 시 중복 키 업데이트  (0) 2018.08.05
반응형

C:\Program Files\MariaDB 5.5\data 의 my.ini 설정


[client]

default-character-set=utf8


[mysql]

default-character-set=utf8


[mysqldump]

default-character-set=utf8


[mysqld]

init_connect="SET collation_connection = utf8_general_ci"

init-connect='SET NAMES utf8'

character-set-server=utf8

collation-server = utf8_general_ci



설정 하면 된다

반응형

1.jsp


1이미지 업로드 페이지 

<form action="" method="" enctype="multipart/form-data">

<input type="file" id="" name="" onchage="readUrl(this)"> <!-- onchage 이벤트를 통해 아래 이미지 출력 -->

<img id="" name="" src="#" alt="your image"/>  <!-- 이미지를 보여준다-->

</form>


<!-- 이미지 출력 스크립트 -->

<script>

function readURL(input) {

if (input.files && input.files[0]) {

var reader = new FileReader();

reader.onload = function(e) {

$('#blah').attr('src', e.target.result);

}

reader.readAsDataURL(input.files[0]);

}

}

<script>




2, JSP 화면 출력 페이지 

<!-- 이미지 출력 부분 -->

이미지 태그에서 바로 컨트롤러 메소드를 호출할수 있더라 그래서 PrivacyKey 를 이용하여 이미지 파일 호출

<td><img width="50" height="50" src="/showImg/${listBoard.NUM}.do"/></td>


2.java


2.1 DB Insert JavaMethod 생성 (MultipartFile 파일을 이용하여 파일 업로드)

@RequestMapping(value = "/insertBoard.do")

public String insertBoard(ModelMap model,HttpServletRequest request,HttpServletResponse response,MultipartFile imgFile)throws Exception {

String title = request.getParameter("title");

String content = request.getParameter("content");

String imgName = imgFile.getOriginalFilename();

String imgContentType= imgFile.getContentType();

//inputstream 으로 변환

InputStream fis = imgFile.getInputStream();

//IOUtils 이용하여 바이트 배열로 치환

byte[] image = IOUtils.toByteArray(fis);

Map<String,Object> paramMap = new HashMap<String,Object>();

paramMap.put("title", title);

paramMap.put("content",content);

paramMap.put("imgFile", image);

paramMap.put("imgName", imgName);

paramMap.put("imgContentType", imgContentType);

boardService.insertBoard(paramMap);

// 완료 되고 나면 목록 페이지로 url 변경하는 redirect 사용

return "redirect:/listBoard.do";

}



2.2 DB select JavaMethod 생성 

@RequestMapping(value = "/showImg/{num}.do")

public void showImg(@PathVariable("num") String num, HttpServletResponse response) throws IOException, SerialException, SQLException {

List<Map<String, Object>> listBoard;

try {

Map<String,Object> paramMap = new HashMap<String,Object>();

paramMap.put("num", num);

listBoard = boardService.selectListBoard(paramMap);



        //이미지 파일 이름

response.setHeader("Content-Disposition", "inline;filename=\"" + listBoard.get(0).get("IMGNAME") + "\"");

OutputStream outputStream = response.getOutputStream();

  //이미지 contentType 

response.setContentType((String) listBoard.get(0).get("IMGCONTENTTYPE"));

  // 이미지 바이트 배열

SerialBlob blob = new SerialBlob((byte[]) listBoard.get(0).get("IMGFILE"));

IOUtils.copy(blob.getBinaryStream(), outputStream);


outputStream.flush();

outputStream.close();


} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}



참고 http://xx707xx.tistory.com/47

반응형

select * from table_page 

LIMIT 0,10


0부터 10까지 출력이 됨

반응형

INSERT INTO favorite

(

hno,

member_nm

) VALUES (

#{hno},

#{memberNm}

)

ON DUPLICATE KEY

UPDATE use_yn = 'Y',

mod_date = now()

'DataBase > Mssql' 카테고리의 다른 글

MSSQL DB 백업 및 복구 쿼리  (0) 2019.07.29
Mysql DB 복구 방법  (0) 2019.04.17
반응형

윈도우 커맨드창 에서 


nssm 폴더의 32/64 경로 이동


-nssm install [서비스명]

application 

-path = javaw 

-startup directory = war 파일 경로

-arguments = -jar [war 파일명]


-nssm remove [서비스명]


-nssm edit [서비스명]

+ Recent posts