Files
sqlserver-collation-migration/docs/USAGE.md

62 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Usage Data Copy (Variant B / Checkpointing)
## Preconditions
1. **Target database exists** (e.g. UTF-8 collation)
2. **Target schema is deployed** (tables, constraints, indexes, views, procs, triggers, users/roles etc.)
3. You can connect to the SQL Server instance with sufficient permissions.
## Run
Open `scripts/migrate_copy_checkpoint.sql` in SSMS.
At the top configure:
- `@SourceDb` (default: `sysdb_UTF8`)
- `@TargetDb` (default: `sysdb_utf8_jr`)
Optional behavior:
- `@Mode`
- `RESUME` (default): skip tables already marked `DONE`
- `RESET`: reset state and rerun all tables
- `@StopOnError`
- `1` (default): stop on first table error
- `0`: continue with next tables; check `dbo.MigrationState` afterwards
- `@BatchSize`
- used for tables with `IDENTITY (int/bigint)` to copy in chunks
Execute the script.
## Monitoring
The script prints progress like:
- `... | TABLE_START | dbo.TableX`
- `... | TABLE_DONE | dbo.TableX | Old=... New=...`
- `... | TABLE_FAILED | dbo.TableX | Error ...`
In target DB you also have:
- `dbo.MigrationState` (table-level status)
- `dbo.MigrationCopyLog` (append-only log)
Useful queries:
```sql
USE sysdb_utf8_jr;
SELECT * FROM dbo.MigrationState ORDER BY Status, TableSchema, TableName;
SELECT TOP 200 * FROM dbo.MigrationCopyLog ORDER BY LogId DESC;
```
## Rerun behavior
Each table is copied as:
1. `DELETE FROM target.table`
2. `INSERT INTO target.table SELECT ... FROM source.table`
So reruns are safe. The checkpoint state enables resuming.