Please please don't do this. And anyone who reads this, don't copy that mistake.I just had the same problem with my FreeBSD desktop PC (/dev/ada0p1 got corrupted), no idea how or why it happened, but luckily I use a ZFS mirror, so a simplecat /dev/ada1p1 > /dev/ada0p1
made my system boot again. The /dev/ada0p1 partition is still marked as dirty, so I need to fix that next - but everything else is working again.
To begin with, every ZFS physical disk has a signature written on it. Now you have two disks with the same signature, meaning two disks that ZFS sort of thinks are identical (except that they have different physical hardware being used, but I don't know whether ZFS checks that). Next, there is no guarantee that the data structures on two physical volumes of a mirror are identical; matter-of-fact, if the mirror was running in degraded mode or was resilvered, they probably are not. And you did all the copying without checksum verification, so if there were any errors on the source disk, you now replicated the errors and wiped out the only good copy (which was perhaps no longer reachable). Lastly, this is inefficient, as you end up copying lots of unallocated disk space needlessly.
The correct way to do this is to use ZFS internal commands to rebuild the mirror.